How nowtyler/family-wishlist works
Family Wishlist is a full-stack app for managing personal and shared gift lists, coordinating purchases across households, and administering family accounts and system data. The principal flow is a family member signs in, views or edits wishlists, and coordinates gifts; React screens call the FastAPI API, which applies domain logic and persists records. The README documents additional capabilities whose individual implementations are not fully represented in the excerpts; those are shown at subsystem level where the tree supports a path. Calls involving unsampled routes are not expanded beyond documented API boundaries.
Main entry points: api.js Frontend API client · crud.py Data operations · main.py Admin operations · App.jsx App router
Components 24
Web client
- App router
frontend/src/App.jsx - Wishlist dashboard
frontend/src/components/DashboardScreen.jsx - Item entry
frontend/src/components/AddItemForm.jsx - Shared list manager
frontend/src/components/SharedWishlistManager.jsx - Household manager
frontend/src/components/UserHouseholdManager.jsx - Admin console
frontend/src/components/AdminPage.jsx - Frontend API client
frontend/src/services/api.js
Wishlist and gifting
- Wishlist API
backend/app/main.py - Shared list API
backend/app/main.py - Gift coordination API
backend/app/main.py - URL product import
backend/app/services/url_scraper.py
Family and identity
- Household API
backend/app/main.py - Authentication API
backend/app/main.py - Account authentication
backend/app/services/user_auth_service.py
Administration and services
- Email delivery
backend/app/services/email_service.py - Admin operations
backend/app/main.py - Backup service
backend/app/services/backup_service.py - Schema migrations
backend/app/services/migration_service.py
Persistence
- Data operations
backend/app/crud.py - Domain records
backend/app/models.py - Application database
backend/app/database.py
Other components
- Family member
- Product websites
- Turnstile
Connections 29
- Family member → App router: uses
- App router → Wishlist dashboard: routes to
- App router → Admin console: routes to
- Wishlist dashboard → Frontend API client: requests data
- Item entry → Frontend API client: submits items
- Shared list manager → Frontend API client: manages lists
- Household manager → Frontend API client: manages households
- Admin console → Frontend API client: requests administration
- Frontend API client → Wishlist API: HTTP requests
- Frontend API client → Shared list API: HTTP requests
- Frontend API client → Gift coordination API: HTTP requests
- Frontend API client → Household API: HTTP requests
- Frontend API client → Authentication API: HTTP requests
- Frontend API client → Admin operations: HTTP requests
- Wishlist API → Data operations: reads and writes
- Shared list API → Data operations: reads and writes
- Gift coordination API → Data operations: reads and writes
- Household API → Data operations: reads and writes
- Authentication API → Account authentication: authenticates
- Account authentication → Email delivery: sends reset email
- Authentication API → Turnstile: validates challenge
- Wishlist API → URL product import: imports product details
- URL product import → Product websites: fetches product page
- Admin operations → Backup service: manages backups
- Admin operations → Schema migrations: manages schema
- Admin operations → Data operations: reads and writes
- Data operations → Domain records: uses records
- Domain records → Application database: maps to tables
- Data operations → Application database: persists data