|
| 1 | +# 🚀 Kanban System for Project Management |
| 2 | + |
| 3 | +This project is a web-based Kanban system for project management. It allows users to manage projects, organize tasks into different stages, and track the progress of tasks. |
| 4 | + |
| 5 | +## Diagrams |
| 6 | + |
| 7 | +### 📊 Class Diagram |
| 8 | +[Insert your class diagram here] |
| 9 | + |
| 10 | +### 🔄 Entity-Relationship Diagram |
| 11 | +[Insert your entity-relationship diagram here] |
| 12 | + |
| 13 | +## Technologies Used |
| 14 | + |
| 15 | +- ☕ Java |
| 16 | +- 🚀 Spring Boot |
| 17 | +- 💾 Spring Data JPA |
| 18 | +- 🛠️ Hibernate |
| 19 | +- 🗃️ MySQL |
| 20 | +- 🔐 JWT (JSON Web Tokens) |
| 21 | +- 📝 Swagger UI |
| 22 | +- 📦 Maven |
| 23 | + |
| 24 | +## Configuration and Usage |
| 25 | + |
| 26 | +1. **Clone the repository:** `git clone https://github.com/your-username/kanban-project-management.git` |
| 27 | +2. **Configure the MySQL database:** Update the `application.properties` file with your database configuration. |
| 28 | +3. **Compile and run the application:** `mvn spring-boot:run` |
| 29 | +4. **Access the application:** Open your browser and go to `http://localhost:8080` |
| 30 | +5. **Explore the API:** Use Swagger UI to explore and test the API endpoints at `http://localhost:8080/swagger-ui.html` |
| 31 | + |
| 32 | +## Main Endpoints |
| 33 | + |
| 34 | +- ✨ `POST /v1/projects`: Create a new project. |
| 35 | +- ✏️ `PUT /v1/projects/{id}`: Update an existing project. |
| 36 | +- ❌ `DELETE /v1/projects/{id}`: Delete a project. |
| 37 | +- 📝 `GET /v1/projects/{id}`: Get a project by its ID. |
| 38 | +- 📊 `GET /v1/projects/{id}/board`: Get all tasks of a project grouped by status. |
| 39 | +- 🔧 `PATCH /v1/task/{id}`: Update the status of a task. |
| 40 | +- ⏰ `GET /v1/projects/{id}/due-task`: Get overdue tasks of a project. |
| 41 | + |
| 42 | +## Authentication and Authorization |
| 43 | + |
| 44 | +The API uses JWT (JSON Web Tokens) for user authentication and authorization. To obtain an access token, follow these steps: |
| 45 | + |
| 46 | +1. **Authenticate:** Send a POST request to `/auth/login` with valid credentials in the request body. |
| 47 | +2. **Receive Token:** If the credentials are correct, you will receive an access token in the response. |
| 48 | +3. **Include Token:** Include the access token in the `Authorization` header of subsequent requests to protected endpoints. |
| 49 | + |
| 50 | +## Error Handling |
| 51 | + |
| 52 | +The API handles errors and returns appropriate responses for invalid requests or resources not found. Error messages are included in the response body with an appropriate HTTP status code. |
| 53 | + |
| 54 | +## Testing |
| 55 | + |
| 56 | +Unit and integration tests have been implemented to ensure the proper functioning of the application. You can run the tests using the following command: |
| 57 | + |
| 58 | +```bash |
| 59 | +mvn test |
| 60 | + |
| 61 | +Contribution |
| 62 | +If you wish to contribute to this project, please follow these steps: |
| 63 | + |
| 64 | +Fork the repository. |
| 65 | +Create a new branch: For your feature or bug fix. |
| 66 | +Make Changes: Make necessary changes and ensure that tests pass. |
| 67 | +Submit a Pull Request: Describe your changes and submit a pull request. |
| 68 | +Contact |
| 69 | +If you have any questions or suggestions about this project, feel free to contact us at [insert your contact information here]. |
0 commit comments