Logo Lanfrica

tinsaeke/Ethiopian-City-Complaint-System

Domaine:

digital infrastructurenatural language processing

Type de record:

software
Créateur:
tin
Hôte:
Production-ready complaint management system for Ethiopian cities with multi-role access, bilingual support, real-time tracking, and comprehensive analytics. Built with React, Node.js, and MongoDB Atlas. # Ethiopian City Complaint Management System A modern complaint management platform built for Ethiopian cities. Citizens can report problems, track their status, and local authorities can manage everything efficiently. ## What's Inside - Different access levels for citizens, team members, and admins - Works in both English and Amharic - Dark and light themes - Upload photos with location data - Search and filter complaints easily - Get notified about updates - Export data as CSV, PDF, or JSON ## Tech Stack **Frontend**: React 18, TypeScript, Tailwind CSS, Radix UI **Backend**: Node.js, Express.js, MongoDB Atlas, JWT **Tools**: Vite, ESLint ## Getting Started 1. Clone this repo 2. Install everything: ```bash npm install cd backend && npm install ``` 3. Set up your environment files: ```bash cp .env.example .env cp backend/.env.example backend/.env ``` 4. Add your MongoDB Atlas connection string to `backend/.env` 5. Seed the database with sample data: ```bash cd backend && npm run seed ``` 6. Run both servers: ```bash # Terminal 1 - Backend cd backend && npm run dev # Terminal 2 - Frontend npm run dev ``` ## Test Accounts Use these to log in and try different roles: - **Admin**: admin@city.gov.et / admin123 - **Roads Team**: roads@city.gov.et / roads123 - **Sanitation**: sanitation@city.gov.et / sanitation123 - **Water**: water@city.gov.et / water123 - **Electricity**: electricity@city.gov.et / electricity123 ## API Overview Check out the full API docs in the `docs/` folder. Here are the main endpoints: **Authentication** - `POST /api/auth/login` - Log in - `POST /api/auth/register` - Create account **Complaints** - `GET /api/complaints` - List all - `POST /api/complaints` - Submit new - `PUT /api/complaints/:id` - Update - `DELETE /api/complaints/:id` - Delete **Admin** - `GET /api/admin/stats` - Dashboard stats - `GET /api/admin/users` - User management ## License MIT License

Languages