Welcome to the Project Management App, a modern and efficient tool built with Spring Reactive WebFlux for managing your projects effortlessly. This app offers a reactive and non-blocking architecture, ensuring high performance and scalability.
- Reactive Web Interface: Utilizing Spring WebFlux, the app provides a responsive and interactive user interface.
- Project Management: Create, update, and delete projects with ease.
- Task Tracking: Manage tasks within each project, track progress, and mark tasks as complete.
- Reactive Data Access: Leverage the power of reactive programming with Spring Data MongoDB for efficient data access.
- RESTful API: Expose a RESTful API for seamless integration with other systems or client applications.
- Security: Secure your app with Spring Security to protect your data and resources.
- Logging and Monitoring: Monitor application health and performance with Spring Boot Actuator and Micrometer.
To get started with the Project Management App, follow these steps:
-
Clone the Repository: Clone this repository to your local machine using the following command:
git clone https://github.com/Navin3d/Reactive-Project-Management.git
-
Build the Application
Navigate to the project directory and build the application using Maven or Gradle:
cd project-management-app
./mvnw clean install
- Run the Application
Run the Spring Boot application using the following command:
./mvnw spring-boot:run
- Access the Application
Once the application is running, access it in your web browser at http://localhost:8080.
To run the Project Management App using Docker, follow these steps:
docker run -p 8080:8080 navin3d/reactive-project-manager-backend:auth-disabled
The Project Management App can be configured to meet your specific requirements. Here are some configuration options:
- Database Configuration: Configure the MongoDB connection properties in
application.properties
orapplication.yml
. - Security Configuration: Customize security settings in
SecurityConfig.java
to match your authentication and authorization requirements. - Logging Configuration: Adjust logging levels and appenders in
logback.xml
for effective monitoring and troubleshooting.
The Project Management App provides a RESTful API for interacting with projects and tasks programmatically. Here are some API endpoints:
- GET /projects: Get all projects.
- GET /projects/{id}: Get a project by ID.
- POST /projects: Create a new project.
- PUT /projects/{id}: Update a project.
- DELETE /projects/{id}: Delete a project.
- GET /projects/{projectId}/tasks: Get all tasks for a project.
- GET /projects/{projectId}/tasks/{taskId}: Get a task by ID for a project.
- POST /projects/{projectId}/tasks: Create a new task for a project.
- PUT /projects/{projectId}/tasks/{taskId}: Update a task for a project.
- DELETE /projects/{projectId}/tasks/{taskId}: Delete a task for a project.
For more details and examples, refer to the API documentation or Swagger UI at http://localhost:8080/webjars/swagger-ui/index.html#/.
Contributions are welcome! If you'd like to contribute to the Project Management App, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/my-feature
). - Make your changes and commit them (
git commit -am 'Add new feature'
). - Push your changes to your forked repository (
git push origin feature/my-feature
). - Create a new pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Spring Framework
- Spring webflux.
- Reactive MongoDB
- Reactor Core