A web-based platform for residents to report community problems and allow other residents and administrators to view, comment, and manage these reports. The system provides a feed-like interface where users can post problems, view updates, and ensure transparency in resolving issues.
- Post issues with a title, description, and optional image.
- View all reported issues in a feed-style interface.
- Comment on problems and discuss solutions.
- View the status of reported problems (Pending, In Progress, Resolved).
- View all reported issues and their details.
- Update the status of problems.
- Receive email notifications about new problem reports.
-
Frontend:
- React.js
- CSS (or a library like TailwindCSS/Bootstrap)
-
Backend:
- Express.js
- Node.js
- Nodemailer for email notifications
-
Database:
- MySQL
-
Dev Tools:
- VS Code
- Postman for API testing
- Concurrently for managing frontend and backend
git clone https://github.com/mahin273/UrbanEase
cd UrbanEase- Navigate to the
backendfolder:cd backend - Install dependencies:
npm install
- Configure environment variables:
Create a.envfile in thebackendfolder:PORT=5000 DB_HOST=localhost DB_USER=root DB_PASSWORD=yourpassword DB_NAME=community_reporting EMAIL_HOST=smtp.yourmail.com EMAIL_PORT=587 EMAIL_USER=[email protected] EMAIL_PASS=yourpassword
- Run migrations to create database tables:
node src/db/migrate.js
- Start the backend server:
npm start
- Navigate to the
frontendfolder:cd ../frontend - Install dependencies:
npm install
- Start the development server:
npm start
From the root folder, use:
npm run startPOST /api/login- User login.POST /api/register- User registration.
GET /api/problems- Fetch all problems.POST /api/problems- Create a new problem.GET /api/problems/:id- Get a specific problem.PUT /api/problems/:id- Update problem status (admin).DELETE /api/problems/:id- Delete a problem.
POST /api/problems/:id/comments- Add a comment to a problem.GET /api/problems/:id/comments- Fetch comments for a specific problem.
community-problem-reporting/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── db/
│ │ │ ├── migrate.js
│ │ │ ├── config.js
│ ├── .env
│ ├── package.json
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.js
│ │ ├── index.js
│ ├── public/
│ ├── package.json
│ └── .env
├── package.json
└── README.md
- Add location tagging for problems.
- Integrate notifications for residents when the status of a problem changes.
- Implement OAuth for secure authentication.
Feel free to submit issues or pull requests. Contributions are welcome!
This project is licensed under the MIT License.