How dawsdo/shipthacks works
ShelterLink BHM helps people find a suitable Birmingham shelter with currently confirmed open beds, then place a time-limited hold; shelter staff can report counts, pause arrivals, and check people in. The core flow is browse and filter → inspect a listing → hold a bed, with a separate host-console workflow for updating availability and handling arrivals. The README documents privacy safeguards and HUD-based seeding; source excerpts show the API and main UI calls. Some subsystem links are omitted where unsampled implementation details do not establish the relationship.
Main entry points: Browse.jsx Browse and filter · db.js Database access · App.jsx App routing · index.js Express API
Components 17
Shelter discovery
- App routing
src/App.jsx - Browse and filter
src/pages/Browse.jsx - Listing cards
src/components/ListingCard.jsx - Listing and holds
src/pages/Listing.jsx - People stepper
src/components/Stepper.jsx - Eligibility and display
src/lib.js
Host operations
- Host console
src/pages/Host.jsx
API and rules
- API client
src/api.js - Express API
server/index.js - Freshness and privacy
server/index.js - Hold lifecycle
server/index.js
Shelter data
- Database access
server/db.js - Hosts and holds schema
server/schema.sql - PostgreSQL
- HUD inventory loader
server/load-hic.js
Other components
- Bed seeker
- Shelter staff
Connections 22
- Bed seeker → App routing: opens
README.md - App routing → Browse and filter: routes to
src/App.jsx - App routing → Listing and holds: routes to
src/App.jsx - App routing → Host console: routes to
src/App.jsx - Browse and filter → API client: fetches hosts
src/pages/Browse.jsx - Browse and filter → Eligibility and display: filters and sorts
src/pages/Browse.jsx - Browse and filter → Listing cards: renders
src/pages/Browse.jsx - Browse and filter → People stepper: renders
src/pages/Browse.jsx - Listing and holds → API client: loads and holds
src/pages/Listing.jsx - Listing and holds → People stepper: renders
src/pages/Listing.jsx - Listing cards → Eligibility and display: formats with
src/components/ListingCard.jsx - Shelter staff → Host console: updates beds
README.md - Host console → API client: updates and checks in
src/pages/Host.jsx - API client → Express API: sends API requests
README.md - Express API → Freshness and privacy: shapes host data
server/index.js - Freshness and privacy → Database access: queries host data
server/index.js - Express API → Hold lifecycle: dispatches hold actions
server/index.js - Hold lifecycle → Database access: reads and writes holds
server/index.js - Express API → Database access: updates host counts
server/index.js - Database access → Hosts and holds schema: initializes tables
server/db.js - Database access → PostgreSQL: connects to
server/db.js - HUD inventory loader → PostgreSQL: loads inventory