Skip to content

Repository files navigation

Project Nagi — Habit Journal

Life is a river: continuous, flowing, yet still. Inspired by Hermann Hesse's Siddhartha.

Project Nagi is a habit journalling application built for mindful self-tracking. Create habits with flexible schedules, organize them into color-coded categories, log entries with customizable attribute fields, and review your history in a daily journalling view.

Stack

Layer Technology
Frontend React, Tailwind CSS, Vite
Backend Python, FastAPI, SQLAlchemy
Database PostgreSQL (production), SQLite (development/testing)

Project Structure

client/   — React frontend
server/
  infrastructure/ — Adapters (SQLAlchemy UoW + repositories)
  models/         — SQLAlchemy ORM models
  ports/          — Interfaces (IUnitOfWork, IRepository protocols)
  routes/         — FastAPI routers (HTTP layer)
  schemas/        — Pydantic request/response schemas
  usecases/       — Application logic (use cases)
  auth.py         — JWT auth helpers
  config.py       — Centralized settings (Pydantic BaseSettings)
  dependencies.py — FastAPI dependency providers (get_uow)
tests/    — pytest test suite (unit + integration)

Running Locally

# Backend
source .venv/bin/activate
cd server
uvicorn server.main:app --reload

# Frontend
cd client
npm install
npm run dev

Features

  • Habits — Create and manage habits with daily, weekly, or monthly schedules
  • Categories — Organize habits with color-coded categories
  • Attributes — Define custom input fields per habit (number, text, date, boolean, select, and more)
  • Journalling — Tasks grouped by day with completion tracking and data entry
  • Keep After Due Date — Habits that persist beyond their due date with optional expiration

Contributing

See .github/instructions/workflow.md for contribution guidelines.

About

A habit journalling application designed to bring calm and clarity. Track routines, reflect on emotions, and flow through personal growth with a mindful interface.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages