A hyper-local community incident reporting platform for Bucharest, Romania. Users can report and view community alerts including traffic incidents, lost items, events, safety concerns, and more.
- Text & Voice Input: Submit alerts via text or voice recognition
- Smart Location Detection: Automatic location extraction from text using a comprehensive Bucharest location library
- AI-Powered Analysis: Uses Google Gemini API to extract structured data from user input (category, priority, title, location, etc.)
- Interactive Map: View alerts on an interactive map with sector boundaries
- List View: Browse alerts with filtering by category and neighborhood/sector
- Location Clustering: Multiple events at the same location are automatically clustered to prevent map overlap
- Sector Visualization: Visual representation of Bucharest's 6 sectors on the map
- React + Vite + TypeScript
- TailwindCSS for styling
- react-leaflet for map visualization
- Web Speech API for voice input
- FastAPI (Python) - REST API framework
- Motor - Async MongoDB driver
- Google Gemini API - AI text analysis
- Google Maps Geocoding API - Location geocoding and reverse geocoding
- MongoDB - Document database for alerts and sector data
- Python 3.12+
- Node.js 18+
- MongoDB (local or Atlas)
- Google API Key (for Gemini AI and Geocoding)
- Install dependencies:
cd backend
pip install -r requirements.txt- Create
.envfile in thebackendfolder:
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/?retryWrites=true&w=majority
MONGODB_DB=CommunityHelp
GOOGLE_API_KEY=your_google_api_key_hereReplace:
<username>and<password>with your MongoDB credentialsyour_google_api_key_herewith your Google API key (enable Gemini API and Geocoding API)
- Run the server:
uvicorn main:app --reload --port 8000The API will be available at http://localhost:8000
- Install dependencies:
cd frontend
npm install- Start dev server:
npm run devThe app will be available at http://localhost:3000
| Variable | Description | Required |
|---|---|---|
MONGODB_URI |
MongoDB connection string | Yes |
MONGODB_DB |
Database name (default: CommunityHelp) |
No |
GOOGLE_API_KEY |
Google API key for Gemini AI and Geocoding | No (but recommended) |
Weaversong/
├── auth-service/
│ ├── backend/ # FastAPI backend
│ └── frontend/ # React frontend
└── README.md
- Python 3.12+
- Node.js 18+
- MongoDB connection string
- Google Gemini API key
cd auth-service/backend
pip install -r requirements.txt
# Create .env file with required variables
uvicorn app.main:app --reload --port 8000cd auth-service/frontend
npm install
npm run devMONGODB_URI=your_mongodb_connection_string
MONGODB_DB=CommunityHelp
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_MIN=30
CORS_ORIGIN=http://localhost:5173
GEMINI_API_KEY=your_gemini_api_key
VITE_API_URL=http://localhost:8000
POST /auth/signup- Register new userPOST /auth/login- Login and get access tokenPOST /auth/refresh- Refresh access tokenGET /auth/me- Get current user info
POST /clarify/simplify- Simplify medical documentsPOST /clarify/legal- Simplify legal documents
GET /public-data/datasets- List/search datasetsGET /public-data/datasets/{id}- Get dataset detailsGET /public-data/datasets/{id}/aggregated- Get AI analysis of datasetPOST /public-data/explain-alert- Explain RO-ALERT messagesPOST /public-data/explain-social-aid- Answer social aid questions
POST /reminders- Create reminderGET /reminders- Get user remindersDELETE /reminders/{id}- Delete reminder
MIT