A robust Spring Boot application for managing tasks and user collaborations on these tasks.
-
User Registration and Authentication 🔐
- JWT-based authentication
- Secure password storage
- Email validation
-
Task Management 📋
- Create new tasks
- Assign tasks to users
- Track task status (CREATED, IN_PROGRESS, COMPLETED)
- Filter tasks by author and assignee
-
Comments System 💬
- Add comments to tasks
- View comments in chronological order
- Track comment count per task
- Java 17
- Spring Boot
- Spring Security
- Spring Data JPA
- MySQL Database
- Gradle
- Lombok
- JWT Authentication
POST /api/accounts
- Register new userPOST /api/auth/token
- Get JWT token
POST /api/tasks
- Create new taskGET /api/tasks
- Get all tasks (with optional author/assignee filters)PUT /api/tasks/{taskId}/assign
- Assign task to userPUT /api/tasks/{taskId}/status
- Update task status
POST /api/tasks/{taskId}/comments
- Add comment to taskGET /api/tasks/{taskId}/comments
- Get task comments
- Clone the repository
- Configure MySQL database in
application.properties
- Run using Gradle:
./gradlew bootRun
- Basic HTTP Authentication + JWT tokens
- Password encryption
- Role-based access control
- API endpoint protection
- Email (unique)
- Password (encrypted)
- Tasks (one-to-many)
- Title
- Description
- Status
- Author
- Assignee
- Comments
- Text
- Author
- Task reference
- Timestamp
- Fork the project
- Create feature branch
- Commit changes
- Push to branch
- Open pull request
- Project created as part of Hyperskill's Java Backend Developer track
- Uses Spring Boot's comprehensive framework
- Implements modern security practices