Developer and task management system built with Spring Boot. This API allows registration, querying, updating, and logical deletion of developers and their respective tasks.
- Overview
- Main Features
- Technologies
- Installation and Setup
- API Usage
- Database Structure
- Security Implementation
- API Documentation
- License
Dev Register is a backend system for managing developers and their tasks. It allows you to register developers with different specializations, experience levels, and programming languages, and assign tasks with priorities and tracking status. The API is secured with JWT authentication for protected endpoints.
- User registration and login system
- JWT (JSON Web Tokens) based authentication
- Protected endpoints with token validation
- Role-based access control
- Registration of developers with personal and professional information
- Paginated listing with HATEOAS support
- Query by ID
- Data updates
- Logical deletion (soft delete) and restoration
- Creation of tasks with title, description, and developer association
- Paginated listing with HATEOAS support
- Priority definition and status
- Date control (creation, start, and end)
- Status management (complete, active)
- Logical deletion (soft delete) and restoration
- Java 24
- Spring Boot 3.4.5
- Spring Security: For authentication and authorization
- JWT (JSON Web Tokens): For secure token-based authentication
- Spring Data JPA: For data persistence
- Spring HATEOAS: For RESTful API implementation with hypermedia
- PostgreSQL: Main database
- H2 Database: For testing and development
- Flyway: For database migrations and versioning
- Lombok: For reducing boilerplate code
- SpringDoc OpenAPI: For automatic API documentation
- Maven: For dependency management
- Java 24 or higher
- Maven 3.6.3 or higher
- PostgreSQL (or use H2 for development)
- Clone the repository:
git clone https://github.com/Ranieeery/dev-register.git
cd register- Configure the
application.propertiesfile with your database credentials:
spring.datasource.url=jdbc:postgresql://localhost:5432/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password- Compile and run the application:
mvn clean install
mvn spring-boot:runPOST /auth/registerPOST /auth/loginPOST /developer/createGET /developer/listGET /developer/list/{id}PATCH /developer/update/{id}DELETE /developer/delete/{id}PATCH /developer/delete/{id}/undoPOST /tasks/createGET /tasks/listGET /tasks/list/{id}PATCH /tasks/update/{id}DELETE /tasks/delete/{id}PATCH /tasks/delete/{id}/undoThe system uses Flyway migrations to create and update the database structure. The main tables include:
tb_developer: Stores developer informationtb_tasks: Stores tasks associated with developers
Migrations include the addition of columns for:
- Active/inactive state management
- Task status
- Creation, start, and end dates
- Priorities
- Specializations and programming languages
The API uses JWT (JSON Web Token) for authentication:
- Registration: Users register with email and password
- Authentication: Upon successful login, the system returns a JWT token
- Authorization: For protected endpoints, the token must be included in the request header
- Token Format:
Authorization: Bearer {your_jwt_token} - Token Lifetime: Tokens are valid for 4 hours by default
JWT benefits in this implementation:
- Stateless authentication
- Cross-domain/CORS support
- Decoupled from user storage
- Security information embedded within the token
Complete API documentation is available through Swagger UI, accessible after starting the application:
http://localhost:8080/swagger-ui/index.htmlThis project is licensed under the MIT License terms.
Developed by Raniery