Skip to content

meghavx/jotly-backend

Repository files navigation

Jotly

Java Spring Boot Maven PostgreSQL Docker License: GPL v3

A minimal backend API for managing notes, inspired by Google Keep.

Project Overview

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.

Screenshots

1 2 3 4
1 2 3 4

Tech Stack

  • 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

Features

  • 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

How to Run

  1. Clone the repository:

    git clone https://github.com/meghavx/jotly-backend.git
    cd jotly-backend
  2. 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.

  3. Start the application and database:

    Option 1 — Using Docker (Recommended)
    docker-compose up [--build]
    Option 2 — Locally (Without Docker)
    mvn spring-boot:run
    Note: Make sure the system has Java 21, PostgreSQL (running and accessible), and Maven
  4. The backend should now be running at: http://localhost:8080

  5. Access the API documentation at: http://localhost:8080/swagger-ui/index.html

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

For details, see the LICENSE file.

About

A minimal backend API for managing notes, inspired by Google Keep.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors