SkillAgentSearch skills...

Tasks

πŸ“ A backend Task Application built with Java 21 and Spring Boot 3.5, featuring User Authentication, Secure REST APIs, and database version control with Liquibase. This project demonstrates core backend development skills such as API design, authentication/authorization, database schema migrations, CI/CD readiness, and deployment.

Install / Use

/learn @engripaye/Tasks
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

πŸ“ Todo App (Spring Boot + PostgreSQL + JWT + Liquibase)

A backend Todo application built with Java 21 and Spring Boot 3.5, featuring user authentication, secure REST APIs, and database version control with Liquibase. This project demonstrates core backend development skills such as API design, authentication/authorization, database schema migrations, CI/CD readiness, and deployment.


πŸš€ Features

  • πŸ” User Authentication & Authorization with JWT (register & login)
  • πŸ—‚οΈ CRUD APIs for managing Todos (per authenticated user)
  • πŸ› οΈ Spring Boot 3.5 (REST Controllers, Services, Repositories)
  • πŸ—„οΈ PostgreSQL Database with schema migrations via Liquibase
  • ⏱️ Cron Jobs Ready (extendable for scheduled tasks)
  • πŸ”„ GitLab CI/CD Ready for automated build & deploy
  • ☁️ Deployable on Render / Railway / Heroku

πŸ“‚ Tech Stack

  • Backend: Java 21, Spring Boot 3.5
  • Database: PostgreSQL
  • Migrations: Liquibase (SQL format)
  • Security: Spring Security + JWT
  • Build Tool: Maven
  • Version Control: Git + GitLab/GitHub
  • Deployment: Render / Railway

βš™οΈ Project Structure

src/main/java/com/example/todo/
β”œβ”€β”€ TodoApp.java               # Main entry point
β”œβ”€β”€ config/SecurityConfig.java # Spring Security setup
β”œβ”€β”€ controller/                # REST API controllers
β”œβ”€β”€ dto/                       # Data transfer objects
β”œβ”€β”€ exception/                 # Custom exception handling
β”œβ”€β”€ model/                     # Entities (User, Todo)
β”œβ”€β”€ repository/                # Spring Data JPA Repos
β”œβ”€β”€ security/                  # JWT util & filters
└── service/                   # Business logic

πŸ› οΈ Setup Instructions

1. Clone Repository

git clone https://github.com/your-username/todo-app.git
cd todo-app

2. Configure Database

Create a PostgreSQL database and update application.yml:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/tododb
    username: postgres
    password: yourpassword
  jpa:
    hibernate:
      ddl-auto: validate
    show-sql: true
  liquibase:
    change-log: classpath:db/changelog/db.changelog-master.xml

3. Run Locally

./mvnw spring-boot:run

or

mvn clean package
java -jar target/todo-app-0.0.1-SNAPSHOT.jar

4. Test APIs with Postman

  • POST /api/auth/register β†’ Register new user
  • POST /api/auth/login β†’ Get JWT token
  • POST /api/todos β†’ Create todo (JWT required)
  • GET /api/todos β†’ List user’s todos
  • PUT /api/todos/{id} β†’ Update todo
  • DELETE /api/todos/{id} β†’ Delete todo

πŸ“¦ Deployment (Render Example)

  1. Push code to GitHub.

  2. Create a PostgreSQL instance on Render.

  3. Add environment variables in Render dashboard:

    • SPRING_DATASOURCE_URL
    • SPRING_DATASOURCE_USERNAME
    • SPRING_DATASOURCE_PASSWORD
    • JWT_SECRET
  4. Deploy the service β†’ Test with your deployed URL.


πŸ§ͺ Example API Requests (cURL)

# Register User
curl -X POST http://localhost:8080/api/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"john","password":"123456"}'

# Login User
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"john","password":"123456"}'

# Create Todo
curl -X POST http://localhost:8080/api/todos \
-H "Authorization: Bearer <JWT_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"title":"Finish Spring Boot Project"}'

πŸ“Œ Roadmap

  • [ ] Add scheduled cron jobs (e.g., daily todo reminders)
  • [ ] Add frontend UI (React or Angular)
  • [ ] Deploy with Docker & Kubernetes for scalability

πŸ‘¨β€πŸ’» Author

Babatunde Olabowale Full Stack Backend Developer | Java | Spring Boot | PostgreSQL | DevOps


⚑ This project highlights backend engineering skills for building secure, scalable, and production-ready APIs.


View on GitHub
GitHub Stars10
CategoryDevelopment
Updated4mo ago
Forks0

Languages

Java

Security Score

72/100

Audited on Nov 16, 2025

No findings