A full-stack web application that empowers citizens to report and track local issues, helping improve their communities through transparent complaint management.
- User Authentication - Secure registration and login with JWT
- Complaint Management - Submit, track, and manage city improvement requests
- Admin Dashboard - Monitor and respond to citizen complaints
- AI Chatbot - Get instant assistance with common queries
- Real-time Updates - Track complaint status in real-time
- Email Notifications - Stay informed with automated email updates
- Responsive Design - Seamless experience across all devices
- Frontend: https://inquisitive-boba-2f9186.netlify.app
- Backend: https://hackathonproject-4.onrender.com
- React - UI library
- Redux Toolkit - State management
- React Router - Navigation
- Tailwind CSS - Styling
- Framer Motion - Animations
- Axios - HTTP client
- Vite - Build tool
- Node.js - Runtime environment
- Express - Web framework
- MongoDB - Database
- Mongoose - ODM
- JWT - Authentication
- Bcrypt - Password hashing
- Nodemailer - Email service
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or Atlas)
- Git
git clone https://github.com/Ashutosh049-lab/HackathonProject.git
cd hacakthon-projectcd backend
npm installCreate a .env file in the backend directory:
PORT=8081
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_email_passwordcd frontend
npm installCreate a .env file in the frontend directory:
VITE_API_URL=http://localhost:8081.\start-dev.ps1Terminal 1 - Backend:
cd backend
npm run devTerminal 2 - Frontend:
cd frontend
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:8081
hacakthon-project/
βββ backend/
β βββ config/ # Database and configuration
β βββ routes/ # API routes
β β βββ auth.routes.js
β β βββ complaint.routes.js
β β βββ admin.routes.js
β β βββ dashboard.routes.js
β β βββ chatbot.routes.js
β β βββ debug.routes.js
β βββ server.js # Entry point
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ store/ # Redux store
β β βββ App.jsx # Root component
β βββ vite.config.js
β βββ package.json
βββ start-dev.ps1 # Development startup script
βββ README.md
npm start- Start production servernpm run dev- Start development server with nodemon
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production build
POST /auth/register- Register new userPOST /auth/login- User login
GET /complaints- Get all complaintsPOST /complaints- Create new complaintGET /complaints/:id- Get complaint by IDPUT /complaints/:id- Update complaintDELETE /complaints/:id- Delete complaint
GET /admin/complaints- Admin complaint managementPATCH /admin/complaints/:id/status- Update complaint status
GET /dashboard/stats- Get dashboard statistics
POST /chatbot/query- Send chatbot query
| Variable | Description | Example |
|---|---|---|
PORT |
Server port | 8081 |
MONGODB_URI |
MongoDB connection string | mongodb://localhost:27017/city-app |
JWT_SECRET |
Secret key for JWT | your-secret-key |
EMAIL_USER |
Email for notifications | noreply@example.com |
EMAIL_PASS |
Email password/app password | your-app-password |
| Variable | Description | Example |
|---|---|---|
VITE_API_URL |
Backend API URL | http://localhost:8081 |
The backend is deployed on Render at: https://hackathonproject-4.onrender.com
Other supported platforms:
- Heroku
- Vercel
- Railway
The frontend is deployed on Netlify at: https://inquisitive-boba-2f9186.netlify.app
Other supported platforms:
- Vercel
- GitHub Pages
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License.
- GitHub: @Ashutosh049-lab
For support, email your-email@example.com or open an issue in the repository.
Made with β€οΈ for building better cities