Skip to content

cities-zach/bquest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bquest

A web app for cataloguing family heirlooms and possessions: item profiles, family history, storage location, preferences for passing items on, photos (current and historical), tags (category and family member), searchable inventory, and downloadable QR code labels.

Stack

  • Backend: Fastify (Node.js)
  • Frontend: React (Vite)
  • Database & Auth: Supabase (PostgreSQL, Auth, Storage)

Setup

1. Supabase project

  1. Create a project at supabase.com.
  2. In SQL Editor, run the migrations in order:
    • supabase/migrations/20250301000001_initial_schema.sql
    • supabase/migrations/20250301000002_storage.sql
  3. In Authentication → Providers, enable Email (and confirm email if you want).
  4. In Project Settings → API, note:
    • Project URL → SUPABASE_URL
    • service_role key → SUPABASE_SERVICE_ROLE_KEY (backend only, keep secret)
    • anon public key → VITE_SUPABASE_ANON_KEY (frontend)

2. Environment variables

Server (server/.env):

SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
CLIENT_ORIGIN=http://localhost:5173
PORT=3000

Client (client/.env):

VITE_SUPABASE_URL=https://xxxx.supabase.co
VITE_SUPABASE_ANON_KEY=your_anon_key

3. Install and run

From the project root:

npm install
cd server && npm install && cd ..
cd client && npm install && cd ..

Run both dev servers (from root):

npm run dev

Sign up with email on the app; then sign in and start adding items and tags.

Features

  • Sign-in: Email/password via Supabase Auth; all data is per-user.
  • Items: Name, short description, family history, “after death” preference, storage location, auto-generated item ID (e.g. BQ-00001).
  • Tags: Category (furniture, china, etc.) and family member (e.g. Grandma Russell); create and assign on the Tags page and when editing items.
  • Photos: Upload current and historical photos per item; stored in Supabase Storage.
  • QR code: Download a PNG label from the item detail page to print and stick on the item; the code links to that item’s page.
  • Scan: Use the in-app scanner (camera) to scan a Bquest item label and jump straight to that item's profile.
  • Inventory: List all items; search by name/description and filter by tag.

For hosting on Vercel (frontend) and Render (API) with a custom domain, see DEPLOYMENT.md.

Scripts

Command Description
npm run dev Run client + server in dev
npm run build Build client and server
npm start Run server only (after build)

About

Webapp for cataloguing possessions for estate planning and family history.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors