Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Habu

A web-based budget management application to help users track expenses, set goals, and visualize their financial data.

This repository is a monorepo managed with npm workspaces and contains both the frontend and the backend applications.

Repository Structure

habu/
├── apps/
│   ├── frontend/   # React + Vite app (@habu/frontend)
│   └── backend/    # Backend service (@habu/backend) — code to be added
├── package.json    # Root workspace config & shared scripts
└── README.md

Prerequisites

  • Node.js (LTS recommended)
  • npm 8+ (required for workspaces)

Getting Started

Install dependencies for all workspaces from the repo root:

npm install

Run the frontend

npm run dev:frontend
# or simply
npm run dev

By default the dev server listens on --host, so it is reachable on your local network as well.

Run the backend

Once the backend code has been added to apps/backend:

npm run dev:backend

Available Scripts (root)

Script Description
npm run dev Alias for dev:frontend.
npm run dev:frontend Start the frontend Vite dev server.
npm run dev:backend Start the backend dev server.
npm run build Build all workspaces that define a build script.
npm run build:frontend Build only the frontend.
npm run build:backend Build only the backend.
npm run lint Run lint in every workspace that defines it.
npm run format Prettier-format the whole repo.
npm run preview Preview the production frontend build.

You can always target a single workspace directly:

npm run <script> --workspace @habu/frontend
npm run <script> --workspace @habu/backend

Environment Variables

The frontend reads VITE_API_URL from apps/frontend/.env:

VITE_API_URL=http://localhost:3000/api

If unset, it defaults to http://localhost:3000/api.

Tech Stack

Frontend

  • React 19
  • TypeScript
  • Vite 8
  • React Router 7
  • Axios
  • shadcn/ui
  • Tailwind CSS 4
  • Zod + TanStack React Form

Backend

  • Node.js + TypeScript
  • Express
  • PostgreSQL
  • Drizzle ORM + Drizzle Kit
  • JWT + bcrypt
  • Docker Compose (local Postgres)

About

WIP: A web-based budget management application to help users track expenses, set goals, and visualize their financial data.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages