How arawakdesign-arch/dj-request works
Pull Up is a nightlife and DJ platform: users discover events and music, participate in event voting/chat, and manage profiles; organizers manage events and pages, while DJs publish shareable profiles and press kits. Express serves the browser app and routes API requests to domain handlers backed by Supabase. Account deletion and inactivity retention provide a separate privacy lifecycle. The README is empty, so feature boundaries come from route names and sampled code; browser-to-API wiring and several unsampled route details are not verified.
Main entry points: server.js HTTP server · supabase.js Supabase client · dj.js DJ profiles · auth.js Authentication and access
Components 27
Web experience
- Web app
public/js/app.js - Browser API client
public/js/api.js - HTTP server
server.js
Events and participation
- Event management
routes/events.js - Live activity
routes/live.js - Event chat
routes/messages.js - Event screens
routes/screen.js - Search and lookup
routes/search.js
DJ and organizer profiles
- DJ profiles
routes/dj.js - DJ profile editor
public/js/dj-profile-editor.js - DJ profile schema
public/js/dj-profile-schema.js - Press kit PDF
lib/dj-presskit-pdf.js - Organizer pages
routes/orga.js - Member profiles
routes/profile.js
Identity and privacy
- Authentication routes
routes/auth.js - Authentication and access
middleware/auth.js - JWT tokens
lib/jwt.js - Content moderation
lib/moderation.js - Account deletion
lib/account.js - Inactive account retention
lib/retention.js - Supabase client
lib/supabase.js - Supabase data and storage
External services
- SoundCloud search
lib/soundcloud.js - Deezer API
- iTunes API
- Address and venue APIs
Other components
- Visitors and members
Connections 39
- Visitors and members → Web app: use
- Web app → Browser API client: requests
- Browser API client → HTTP server: calls API
- HTTP server → Event management: routes requests
server.js - HTTP server → Live activity: routes requests
server.js - HTTP server → Event chat: routes requests
server.js - HTTP server → Event screens: routes requests
server.js - HTTP server → Search and lookup: routes requests
server.js - HTTP server → DJ profiles: routes requests
server.js - HTTP server → Organizer pages: routes requests
server.js - HTTP server → Member profiles: routes requests
server.js - HTTP server → Authentication routes: routes requests
server.js - Event management → Supabase client: queries
routes/events.js - Live activity → Supabase client: uses
routes/live.js - Event chat → Supabase client: uses
routes/messages.js - Event screens → Supabase client: uses
routes/screen.js - Search and lookup → SoundCloud search: searches DJs
routes/search.js - Search and lookup → Deezer API: searches tracks
routes/search.js - Search and lookup → iTunes API: searches tracks
routes/search.js - Search and lookup → Address and venue APIs: looks up places
routes/search.js - DJ profiles → Supabase client: queries
routes/dj.js - DJ profiles → Authentication and access: protects routes
routes/dj.js - DJ profiles → Content moderation: validates names
routes/dj.js - DJ profiles → DJ profile schema: validates profiles
routes/dj.js - DJ profiles → Press kit PDF: generates PDF
routes/dj.js - DJ profile editor → DJ profile schema: uses schema
- Organizer pages → Supabase client: queries
routes/orga.js - Organizer pages → Authentication and access: protects routes
routes/orga.js - Member profiles → Supabase client: uses
routes/profile.js - Member profiles → Authentication and access: protects routes
routes/profile.js - Authentication routes → JWT tokens: verifies tokens
routes/auth.js - Authentication and access → JWT tokens: verifies tokens
middleware/auth.js - Authentication and access → Supabase client: checks identity
middleware/auth.js - Authentication and access → Supabase data and storage: syncs contacts
middleware/auth.js - Supabase client → Supabase data and storage: connects
lib/supabase.js - Inactive account retention → Account deletion: deletes accounts
lib/retention.js - Inactive account retention → Supabase client: tracks purge runs
lib/retention.js - Account deletion → Supabase client: removes user data
lib/account.js - HTTP server → Inactive account retention: schedules purge
server.js