Real-time SIM swap fraud prevention for African mobile money. Uses Nokia CAMARA APIs + Claude AI to block fraudulent transactions instantly.
# SimGuard
SimGuard is a fraud detection and verification dashboard built with a FastAPI backend and a React/Vite frontend.
## Quick Start
### 1. Copy environment variables
Create a local environment file from the example:
```powershell
copy .env.example .env
```
### 2. Start with Docker Compose
Use the Docker Compose setup to build and run both services:
```powershell
docker compose up --build
```
This starts:
- Backend API on `
localhost`
- Frontend on `
localhost`
### 3. Access the app
Open your browser to:
- Frontend: `
localhost`
- Backend API docs: `
localhost`
## Manual Local Run
If you prefer to run the services without Docker:
### Backend
```powershell
cd backend
C:\Users\Thando\AppData\Local\Programs\Python\Python312\python.exe -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
pip install fastapi uvicorn sqlalchemy pydantic pydantic-settings python-dotenv httpx
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
### Frontend
```powershell
cd frontend
npm install
npm run dev -- --host
```
Then open the frontend URL shown by Vite (usually `
localhost`).
## Deployment
The application can be deployed with Docker Compose or any container platform that supports separate backend and frontend services.
- Build and run locally with `docker compose up --build`
- Host the backend on any platform that supports FastAPI/Uvicorn and a SQLite or compatible database
- Host the frontend as a static site behind Nginx or another web server, pointing the API base URL to the backend
### GitHub Actions (optional)
A simple CI workflow can install dependencies and validate the project files before deployment.
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-versio …