A minimal backend API for managing notes, inspired by Google Keep.
Jotly is a lightweight and secure backend service for managing personal notes — supporting both text and list (to-do) formats.
Built with Spring Boot and PostgreSQL, it demonstrates clean backend architecture, RESTful API design, and production-ready practices such as containerization, layered services, and JWT-based security.
| 1 | 2 | 3 | 4 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Backend Framework: Spring Boot (Java 21)
- Build Tool: Maven
- Database: PostgreSQL
- ORM / Persistence: Spring Data JPA
- Security: Spring Security with JWT Authentication
- API Documentation: Swagger / OpenAPI
- Testing: JUnit 5, Mockito
- Containerization: Docker
- Version Control: Git & GitHub
-
User Accounts & Security
- Register and log in
- Authentication and authorization
- Protected endpoints — users can only access their own notes
-
Notes Management
- Create, retrieve, update, and delete notes
- Notes linked to individual users
- Create notes in text or list (to-do) format
- Add, edit, reorder, or remove list items
- Mark or unmark items as completed
- Convert between list and text notes
-
Organization & Customization
- Duplicate notes
- Pin/unpin and archive/unarchive notes
- Soft delete, restore, or permanently delete notes
- View deleted notes (up to 30 days old)
- Add, edit, or delete labels
- Assign or remove labels from notes
- Apply background colors to notes
-
Sorting & Search
- Sort notes by creation or modification date (asc/desc)
- Search notes with free text or filter by type, label, or color
-
Clone the repository:
git clone https://github.com/meghavx/jotly-backend.git cd jotly-backend -
Copy the example environment file and update it with your configuration:
cp .env.example .env
Then, set database credentials and other configuration values in the .env file.
-
Start the application and database:
docker-compose up [--build]
mvn spring-boot:run
-
The backend should now be running at: http://localhost:8080
-
Access the API documentation at: http://localhost:8080/swagger-ui/index.html
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
For details, see the LICENSE file.



