Skip to content

isAdamBailey/massa

Repository files navigation

Massa

A personal weight/BMI tracker that syncs with the Google Health API.

Massa stores your weight history in its own Postgres database, computes BMI locally, charts trends over time, and (where supported) syncs weight entries to and from your Google account. Access is restricted to a small, pre-set allowlist of email addresses via passwordless magic-link login.

Stack

  • Backend: Go, chi, pgx, sqlc, golang-migrate
  • Frontend: Nuxt 4, Tailwind CSS v4, Pinia, Chart.js
  • Database: PostgreSQL 16
  • Local dev: Docker Compose

Project layout

backend/    Go API server (cmd/server, cmd/migrate, internal/...)
frontend/   Nuxt 4 SPA
scripts/    Forge deploy script and API daemon wrapper
docs/       Deployment, SES, and Google Health setup

Deployment

See docs/DEPLOY.md for production on a VPS with Laravel Forge (push-to-deploy from GitHub).

Local development

  1. Copy .env.example to .env and fill in the values (Google OAuth credentials, email provider, allowed emails, etc.).

  2. Start everything with Docker Compose:

    docker compose up --build

Backend only

cd backend
go run ./cmd/server
go test ./...
go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest run ./...

Frontend only

cd frontend
npm install
npm run dev
npm run lint
npm run test
npm run build

About

Personal weight and BMI tracker featuring Google Health API sync, trend visualization, and secure magic-link authentication. Built with Go, Nuxt 4, and PostgreSQL.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors