This is the backend for the Construction Issue Manager, a system designed to manage and track issues in construction projects. The backend handles user authentication, issue management, role-based access control, and database interactions.
- Node.js: Backend runtime environment.
- Express.js: Web framework for handling API routes.
- MongoDB: NoSQL database for storing users, issues, and project data.
- Mongoose: ODM for interacting with MongoDB.
- JWT (JSON Web Token): Authentication and authorization.
- bcrypt.js: Password hashing for security.
- Cors: Middleware for handling Cross-Origin Resource Sharing.
- Dotenv: Environment variable management.
- Multer: For handling file uploads.
-
Clone the repository:
git clone https://github.com/Chaim-Pollak/Server.git -
Navigate to the server directory:
cd construction-issue-manager-server -
Install dependencies:
npm install -
Start the server:
npm run dev
POST /users/register- Register a new userPOST /users/login- User loginGET /users/auth- Get authenticated user details
GET /issues- Get all issuesPOST /issues- Create a new issuePUT /issues/:id- Update an issueDELETE /issues/:id- Delete an issue
GET /users- Get all usersPUT /users/employee/update/:id- Update employee detailsDELETE /users/:id- Delete a user
- User Authentication: Secure login using JWT.
- Role-Based Access Control: Different access levels for admins, managers, and employees.
- Issue Tracking: CRUD operations for managing construction issues.
- File Uploads: Supports image uploads for issue documentation.
- Database Management: Uses MongoDB for efficient data storage.
If you’d like to contribute, feel free to fork the repository and submit a pull request.
This project is licensed under the MIT License.