All projects
Frontend★ 02026 ⎇ main

krealalejo/hearthstone

Shared home dashboard for household management. Tasks, inventory, shopping list, and history with real-time persistence and secure multi-user auth

gsapjose-jwtmongodbnuxt4piniavitestvue3vuetify

heartshtone

Shared home dashboard for household management — tasks, inventory, shopping list, and history — with real-time persistence and secure multi-user auth.

Stack: Nuxt 4, Vue 3, Vuetify 4, Pinia, GSAP 3, MongoDB (Mongoose 9), JWT (jose), Zod, Resend, i18n (en/es/ca), TypeScript, Vitest, Capacitor (Android)


Prerequisites

  • Node.js 22+
  • pnpm 11+
  • MongoDB instance (local or Atlas)

Quick Start

  1. Clone repo and install deps
    pnpm install
    
  2. Copy env file and fill values
    cp .env.example .env
    
  3. Start dev server
    pnpm dev
    
  4. Open http://localhost:3000

Commands

Action Command
Dev server pnpm dev
Production build pnpm build
Preview build pnpm preview
Static generate pnpm generate
Type check pnpm typecheck
Run tests pnpm test
Tests (watch) pnpm test:watch
Tests (UI) pnpm test:ui
Tests (coverage) pnpm test:coverage
Android sync pnpm android:sync
Android open pnpm android:open
Android run pnpm android:run

Pages

Path Description Access
/ Home redirect Public → redirects to /dashboard or /auth
/auth Login / register with Google OAuth Public only
/reset-password Password reset (token-gated) Public only
/dashboard Task board with leaderboard Protected
/inventory Household inventory management Protected
/shopping Shopping list with auto-restock flow Protected
/history Checkout / restock history log Protected
/history/purchases Per-item purchase breakdown Protected
/history/weeks Week-over-week spending summary Protected
/household Household settings and member management Protected

API Endpoints

Method Path Description Auth
POST /api/auth/register Create account, return JWT cookie No
POST /api/auth/login Validate credentials, return JWT cookie No
POST /api/auth/logout Clear JWT cookie No
GET /api/auth/me Current user from JWT Yes
POST /api/auth/refresh Refresh JWT token Yes
GET /api/auth/google Initiate Google OAuth flow No
GET /api/auth/google/callback Google OAuth callback, set JWT cookie No
POST /api/auth/forgot-password Send password reset email via Resend No
POST /api/auth/reset-password Consume reset token, update password No
GET/POST/PATCH/DELETE `
View full README on GitHub ↗