Do It is a To Do List app which has the focus on helping users to be more organized, centering all their responsabilities in one place through task creations with a variety of customizations.
- Register your tasks, choose its priority, categories, expiration dates, task status and give detailed description about what to do.
- You can share the task with others and remove them. If it is the case, you can also give or remove administrator permissions which grants the users more authority and flexibility over the tasks.
- Users with permissions can invite new task users, give administrator rights, update or delete tasks.
- Account creation, authentication token using Oauth2 and JWT. Users that doesn't have an account are not able to use the app or be invited to any task.
- Some endpoints are protected, allowing only system admin accounts to access it.
- Java 21
- Spring Boot
- Spring Data JPA
- Spring Security
- Oauth 2 / JWT
- Jakarta Bean Validation
- H2 Database(Testing)
- PostgreSQL
- JUnit 5
- Maven
- Layered Architecture
- Spring Security applied in order to limit some endpoints and generate tokens that expires within a day, tokens are necessary to access all endpoints and validate users
- Customized HTTP response codes using ResponseEntity
- Customized exceptions response messages and codes using exception handlers
- Customized Constraint Validator to validate user updates
- N+1 queries problems solved to improve performance
- Request tests using Postman
- Unit and integration tests writen for repository, services and controllers using JUnit 5 and Mockito ensuring application integrity
Prerequisites: Java 17
1. Clone the repository
git clone [email protected]:kaiqlopes/doit-api.git
2. Open the project in your preferred IDE and execute it
3. Use any API REST testing tool
Kaique Lopes da Silva