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 …