BaseWeight helps you track the gear you bring on adventures.
- Framework: Nuxt 4 (Vue 3, Nitro server, Vite)
- State: Pinia
- Database: sqlite
- Node.js and npm
-
Clone the repo:
git clone https://github.com/galenmaly/baseweight.git cd baseweight -
Install dependencies:
npm install
-
Start the app in development mode:
npm run dev
npm run dev # Start dev server with hot reload (Nuxt on :3000)
npm run start # Production build + start server
npm run build # Nuxt production build only
npm run lint:js # ESLint with auto-fix (.js and .vue files)
npm run lint:css # Stylelint with auto-fix (.scss and .vue files)
npm run test:unit # Run Vitest unit tests
npm run test:unit:watch # Run Vitest in watch mode
npm run test:server # Run server-side integration tests
npm run typecheck # TypeScript type check (no emit)Server-side integration tests use Vitest with an in-memory SQLite database to test API handler authorization and logic directly.
E2E tests use Playwright and run against Chromium and Firefox.
Install Playwright browsers (only needed once):
npx playwright installnpx playwright test # Run all E2E tests
npx playwright test test/e2e/auth.spec.ts # Run a single test file
npx playwright test --project=chromium # Run tests in one browser only
npx playwright test --update-snapshots # Regenerate screenshot baselinesPlaywright automatically starts the app server before running tests (via npm run start).