SafeNet Ghana - Affordable integrated security system for small businesses. Vulnerability Scanner | WiFi IDS | CCTV Monitor.
# SafeNet Ghana 🇬🇭
> Affordable, all-in-one network security system for small businesses in Ghana.
Built by **Patrick Idan** | Ghana Communication Technology University (GCTU) Student | Final Year Project
---
## What is SafeNet Ghana?
Most small businesses in Ghana cannot afford enterprise security tools like Nessus or Cisco Umbrella. SafeNet Ghana is an open-source, integrated security system that brings professional-grade protection to any small business network — accessible from both PC and mobile.
---
## Modules
| Module | Status | Description |
|--------|--------|-------------|
| Vulnerability Scanner | ✅ Live | Scans networks for open ports and known vulnerabilities |
| WiFi Intrusion Detection | ✅ Building | Detects rogue APs, deauth attacks, ARP spoofing |
| CCTV Network Monitor | 🔨 Building | Monitors IP camera traffic for unauthorized access |
---
## Tech Stack
- **Backend** — Python + FastAPI
- **Scanner Engine** — nmap + python-nmap
- **Database** — PostgreSQL (coming)
- **Web Dashboard** — React.js (coming)
- **Mobile App** — Flutter (coming)
- **Deployment** — Docker + DigitalOcean (coming)
---
## Getting Started
### Requirements
- Python 3.10+
- nmap installed and in PATH → nmap.org
### Install dependencies
```bash
cd scanner
pip install -r requirements.txt
```
### Run the scanner (CLI)
```bash
python scanner.py
```
### Run the API server
```bash
python -m uvicorn api:app --reload --host 127.0.0.1 --port 8000
```
### View API docs
Open your browser at: `
127.0.0.1`
---
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/` | System info |
| GET | `/health` | Health check |
| POST | `/scan` | Trigger a vulnerability scan |
| GET | `/scans/history` | All past scans |
| GET | `/scans/latest` | Most recent scan |
| GET | `/scans/stats` | Dashboard statistics |
### Example scan request
```json
POST /scan
{
"target": "192.168.1.1",
"scan_type": "basic"
}
```
---
## Project …