sentinelAI is a full-stack cyber safety platform that combines AI threat analysis with community-driven fraud intelligence.
It helps users:
- Analyze suspicious URLs, messages, prompts, and screenshots
- Report confirmed threats to a shared intelligence pool
- See if others encountered the same attack pattern
- View Scams/Frauds Happening In Your Area on a dedicated page
- Frontend (Public App): https://sentinelai-2.onrender.com
- Backend API Health: https://sentinelai-backend-server.onrender.com/api/health
- AI Service Health: https://sentinelai-1-ehft.onrender.com/health
Frontend/app: React + Vite dashboardBackend: Node.js + Express API + MongoDBAi-Services: FastAPI AI analysis service (Gemini-powered)
- Text and URL threat scanner
- Screenshot fake-login detection
- User authentication with JWT
- Threat reporting workflow
- Threat History and Community Intelligence
- Dedicated page for area-level scam/fraud intelligence
- User segment + location-aware aggregation
- Node.js 20+
- Python 3.10+
- MongoDB Atlas (or compatible MongoDB)
- Google Gemini API key
Copy each example file and fill real values:
Backend/.env.example->Backend/.envAi-Services/.env.example->Ai-Services/.envFrontend/app/.env.example->Frontend/app/.env
PORT=5000MONGO_URI=...JWT_SECRET=...AI_SERVICE_URL=http://127.0.0.1:8000CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173,https://*.onrender.com
GEMINI_API_KEY=...GEMINI_MODEL=gemini-2.5-flashALLOWED_ORIGINS=http://localhost:5000
VITE_API_URL=http://localhost:5000/api
cd Backend
npm installcd Frontend/app
npm installcd Ai-Services
python -m venv .venv
# Windows
.\.venv\Scripts\activate
pip install -r requirements.txtRun each service in its own terminal.
cd Ai-Services
.\.venv\Scripts\activate
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd Backend
npm run devcd Frontend/app
npm run devOpen http://localhost:5173.
- Backend:
GET /api/health - AI Service:
GET /healthandGET /ping
Yes, this setup works:
- Frontend on Render (Static Site)
- Backend on Railway (Node service)
- AI Service on Railway (Python service)
Recommended deployment order:
- AI Service (Railway)
- Backend API (Railway)
- Frontend (Render)
- Service root directory:
Ai-Services - Start command:
uvicorn main:app --host 0.0.0.0 --port $PORT - Procfile included:
Ai-Services/Procfile
Set Railway environment variables:
GEMINI_API_KEYGEMINI_MODEL=gemini-2.5-flashALLOWED_ORIGINS=<your-backend-railway-url>
Health checks:
GET /healthGET /ping
- Service root directory:
Backend - Start command:
npm run start - Procfile included:
Backend/Procfile
Set Railway environment variables:
PORT=5000(or Railway default)MONGO_URI=<your-mongodb-uri>JWT_SECRET=<strong-secret>AI_SERVICE_URL=<your-ai-railway-url>CORS_ORIGINS=<your-render-frontend-url>
Health check:
GET /api/health
- Root directory:
Frontend/app - Build command:
npm run build - Publish directory:
dist
Set Render environment variables:
VITE_API_URL=<your-backend-railway-url>/api
Important for React Router routes like /area-intelligence:
- Add a rewrite rule in Render static site settings:
- Source:
/* - Destination:
/index.html - Action:
Rewrite
Without this rewrite, direct URL refresh on /area-intelligence can return 404.
Docker support is included for all 3 services.
Files added:
docker-compose.ymlBackend/DockerfileAi-Services/DockerfileFrontend/app/Dockerfile
Setup:
- Copy
.env.compose.exampleto.envat repo root. - Fill required values (
MONGO_URI,JWT_SECRET,GEMINI_API_KEY, etc.). - Run:
docker compose up --buildLocal URLs:
- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000/api/health - AI Service:
http://localhost:8000/health
- Environment variables configured in all 3 services
- CORS locked to trusted origins only
- MongoDB network access and credentials verified
- Health endpoints responding after deploy
- Login/Register flow working in production
- Threat scan, report, history, community intel, and area intel verified
- Render rewrite rule added for SPA routes (
/* -> /index.html)
- Project name updated to
sentinelAI - Logo source from
Frontend/app/public/logo.png - Browser tab icon and page branding updated
- Dedicated route for area intelligence:
/area-intelligence
npm run devnpm run start
npm run devnpm run buildnpm run preview
uvicorn main:app --reload

