A Python-based cybersecurity toolkit designed to detect and protect against cyber threats common in Africa β phishing, weak passwords, and social engineering attacks.
# π‘ African Cyber Shield β World Bank Youth Summit 2025
AI-powered cybersecurity intelligence platform for Africa.
Connected to Neon PostgreSQL. Powered by Claude AI.
---
## β‘ Quick Start
### 1. Backend
```bash
cd backend
npm install
npm run db:push # Creates tables in Neon DB (run once)
npm run dev # Starts API on
localhost
```
### 2. Frontend
```bash
cd frontend
npm install
npm run dev # Starts UI on
localhost
```
---
## π Database (Neon PostgreSQL)
Your `.env` already contains the Neon connection string.
Run `npm run db:push` in the backend folder to create all tables.
Tables created:
- `users` β accounts, authentication
- `scans` β scan history per user (linked by userId)
- `incidents` β threat incidents feed
- `campaigns` β active threat campaigns
- `threat_feed` β live threat feed
---
## π API Endpoints
| Method | Path | Auth | Description |
|--------|------|------|-------------|
| POST | /api/auth/register | β | Create account |
| POST | /api/auth/login | β | Sign in |
| POST | /api/auth/logout | β | Sign out |
| GET | /api/auth/me | β | Current user |
| POST | /api/analyze | Optional | Save scan to DB |
| GET | /api/history | β | User's scan history |
| DELETE | /api/history/:id | β | Delete a scan |
| GET | /api/threats/stats | β | Platform stats |
---
## π Pages
1. **Login / Register** β Dedicated auth pages (not modal)
2. **Dashboard** β Live stats, threat map, OWASP chart, incidents
3. **Threat Scanner** β Scan URLs/domains/emails/IPs/text with AI + save to DB
4. **AI Analyst** β Chat with Claude AI specialist in African cyber threats
5. **Live Threats** β Active campaigns, country breakdown, live feed
6. **Reports** β AI-generated threat intelligence reports (downloadable)
7. **About** β World Bank Summit submission page with SDGs
---
## π Environment Variables
**backend/.env** (already set):
```
DATABASE_URL="postgresql://neondb_owner:...@
neon.tech"
JWT_SECRET=your_s β¦