A secure, feature-rich RESTful Notebook API built with Spring Boot, leveraging Spring Security, Spring Data JPA, and Lombok. This application allows users to register, login, manage their personal notes, and perform CRUD operations with authentication-based access control.
- Java 21+
- Spring Boot
- Spring Security (with JWT or session-based authentication)
- Spring Data JPA
- Lombok
- PostgreSQL
- Docker
- Java 21+
- Maven
- Docker
POST /auth/register: Register a new userPOST /auth/login: Login with username and passwordGET /authenticated/dashboard: Fetch secure dashboard dataPOST /authenticated/logout: Logout the authenticated user
POST /notes/create: Create a new noteGET /notes/getNotes: Fetch all notes of the userGET /notes/getNoteById/{id}: Fetch a single note by IDPUT /notes/updateNote/{id}: Update a note by IDPUT /notes/toggleNoteStatus/{id}: Toggle note status (pinned,archived,deleted)DELETE /notes/deleteNote/{id}: Permanently delete a note by ID
Import .env variables to the environment firs then run the following commands -
docker compose up -d
./mvnw spring-boot:run