This project is a Construction Project Management System built using Java Spring Boot, Apache Kafka, and Swagger for API documentation. It provides a dashboard to manage construction projects, real-time messaging using Kafka, and a RESTful API to interact with the system.
The Construction Project Management System is designed to help construction companies manage their projects efficiently. It offers features such as project tracking, real-time updates via Kafka, and a user-friendly dashboard for managing all aspects of a construction project.
- Project Management Dashboard
- Real-time Messaging with Apache Kafka
- RESTful APIs for Project Management
- Swagger API Documentation
- User Authentication and Authorization
The system follows a microservices architecture with the following components:
- Java Spring Boot: Backend service for handling business logic and APIs.
- Apache Kafka: Messaging system for real-time updates and communication.
- Swagger: API documentation and testing tool.
- Database: Relational database for storing project data (e.g., PostgreSQL).
- Java 11 or higher
- Maven
- Docker (for running Kafka and PostgreSQL)
- Node.js and npm (for the frontend)
-
Clone the repository:
cd construction-project-management -
Build the backend:
cd backend mvn clean install -
Run Kafka and PostgreSQL using Docker:
docker-compose up -d
-
Run the Spring Boot application:
mvn spring-boot:run
-
Navigate to the frontend directory:
cd ../frontend -
Install dependencies:
npm install
-
Run the frontend application:
npm start
- Access the project management dashboard at
http://localhost:3000. - Use the API endpoints documented with Swagger at
http://localhost:8080/swagger-ui.html.
The API is documented using Swagger. You can view and test the APIs by navigating to http://localhost:8080/swagger-ui.html once the backend service is running.
- Create a new project:
POST /api/projects - Get all projects:
GET /api/projects - Update a project:
PUT /api/projects/{projectId} - Delete a project:
DELETE /api/projects/{projectId}
We welcome contributions from the community. To contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
