👨🏻💻 Made by: Murillo Sergio
POST: /usersGET: /users/{id}
POST: /tasksGET: /tasks/{id}GET: /tasks
{
"name": "João Silva",
"email": "joao@email.com",
"password": "stringstring"
}Minimum password length: 12
{
"id": 1,
"name": "João Silva",
"email": "joao@email.com",
"tasks": []
} {
"title": "Minha primeira task",
"description": "Estudar Spring Security",
"userId": 1
}[
{
"id": "1",
"title": "Minha primeira task",
"description": "Estudar Spring Security",
"completed": true,
"createdAt": "2026-07-18",
"userId": 1
}
]{
"email": "joao@email.com",
"password": "stringstring"
}- 200:
OK - 201:
Created with success - 400:
The request syntax is incorrect - 401:
Requires authentication (login required) - 403:
"Forbidden – token expired or insufficient permissions"
Access the interactive API documentation at:
http://localhost:8080/swagger-ui.html
- Java 21
- Maven
- PostgreSQL (running locally, with a
tmadatabase created)
git clone https://github.com/murillosnds/TMA.git
cd TMACopy the example file and edit it:
cp .env.example .envOpen .env and fill in your values:
JWT_SECRET_KEY=<your-generated-key>
DB_URL=jdbc:postgresql://localhost:5432/tma
DB_USERNAME=postgres
DB_PASSWORD=your_passwordRun the following command in your terminal:
openssl rand -base64 32$bytes = New-Object byte[] 32; [System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes); [Convert]::ToBase64String($bytes)export $(cat .env | xargs) && ./mvnw spring-boot:runGet-Content .env | ForEach-Object { $name, $value = $_ -split '=', 2; Set-Item -Path "env:$name" -Value $value }
./mvnw spring-boot:runThe API will be available at http://localhost:8080.
docker compose up -dThis project is licensed under the MIT License.
See the file LICENSE for more details.

