Skip to content

martinsmdnuno/casa

Repository files navigation

Casa

A mobile-first web app for households who employ a domestic worker — track visits, calculate the monthly bill, and keep insurance and contract documents in one place.

Try it live → casa.martinsnuno.com No signup needed — click "Ver demonstração" on the login screen to explore with sample data.

Landing page: martinsmdnuno.github.io/casa

Dashboard Register hours Calendar Payments

What it does

  • Hours log — record each visit (start time, end time, duration auto-calculated) right after it happens.
  • Monthly dashboard — running total of accumulated cost and hours for the current month, with payday flagged on the last working day.
  • Calendar — visit-day dots, planned-day outlines, national holidays, and one-tap "mark absence" or "add extra" for future days.
  • Payments — close the month, validate the total, mark as paid, and keep an audit trail of past months.
  • Worker profile — hourly rate, schedule, contact info, quick call/WhatsApp shortcuts.
  • Documents — upload and store insurance policies and contracts.
  • Multi-user — invite a partner or family member to the same household.
  • Locale-aware — EUR formatting, 24h time, dd/mm/yyyy dates, Iberian holidays.

Tech stack

  • Client: React 19, TypeScript, Vite, Zustand, React Router
  • Server: Node.js, Express, SQLite (better-sqlite3), session auth
  • Infra: Docker / docker-compose, npm workspaces

Try it without cloning

The app is hosted at casa.martinsnuno.com.

  • Demo mode — click Ver demonstração on the login page to enter a sample household with seeded data. Resets periodically.
  • Real account — register with email + password (8+ chars). Each account gets its own household; you can invite a partner from More → Sessions.

Quick start

Local development

npm install
npm run dev

Client runs on http://localhost:5173, server on http://localhost:3001.

Copy .env.example to .env and adjust values as needed.

Production (Docker)

export SESSION_SECRET=$(openssl rand -hex 32)
docker compose -f docker-compose.prod.yml up -d --build

Data is persisted in the casa-data named volume.

Project structure

casa/
├── client/                 # React + Vite frontend
│   └── src/
│       ├── pages/          # Dashboard, Calendar, Payments, …
│       ├── components/
│       ├── stores/         # Zustand stores
│       └── api/            # Server client
├── server/                 # Express + SQLite backend
│   └── src/
│       ├── routes/         # auth, dashboard, calendar, payments, …
│       ├── db/             # schema + migrations
│       ├── services/
│       └── middleware/
├── docs/                   # GitHub Pages landing site
└── stitch_clareza_funcional_casa_app_prd/   # Original PRD + design mockups

Screens

Dashboard Register hours Calendar
Dashboard Register hours Calendar
Payments Insurance & docs Worker profile
Payments Insurance Worker profile

Design system

Built on a system called Clareza Funcional ("Functional Clarity"):

Token Value
Primary (Sage Green) #69997A
Secondary (Terracotta) #C28B70
Surface #F9FAF9
Text #1C2B23
Headings Fraunces (serif)
Body / UI Satoshi (sans-serif)
Border radius 8px
Touch target min 48px

Full guidelines in stitch_clareza_funcional_casa_app_prd/styleguide_design.md.

License

Personal project — all rights reserved. Open to questions and feedback via Issues.

About

Mobile-first web app for managing household domestic work — track hours, monthly payments, documents.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages