How miftahrjierd/panggung-lokal works
Panggung Lokal is an Indonesian platform connecting local bands and musicians with event organizers. Its user-facing flow is account registration or login, band profile and availability publishing, organizer band discovery and contact tracking, with dashboards and moderation supporting the marketplace. The Express app serves the public interface and mounts API routes; route handlers delegate to models or database queries. Major capabilities are represented from the README and source index, but unsampled route internals are not inferred beyond indexed references.
Main entry points: app.js Express application · db.js Database access · auth.js Account access · dashboard.js Role dashboards
Components 26
Web and API
- Express application
app.js - Public pages
public
Marketplace
- Band profiles and search
routes/bands.js - Band profile data
models/BandProfile.js - Availability posts
routes/availability.js - Availability data
models/AvailabilityPost.js - Organizer connections
routes/connections.js - Connection records
models/Connection.js - Role dashboards
routes/dashboard.js - Media uploads
routes/upload.js
Accounts and trust
- Account access
routes/auth.js - Token and role checks
middleware/auth.js - Request limits
middleware/rateLimiter.js - Password hashing
utils/password.js - Input validation
utils/validation.js - User reports
routes/reports.js - Admin moderation
routes/admin.js - Report records
models/Report.js - User records
models/User.js
Data services
- Database access
utils/db.js - Embedded database
utils/memoryDb.js
Other components
- Band or musician
- Event organizer
- Administrator
- PostgreSQL
- Uploaded files
uploads
Connections 38
- Band or musician → Public pages: uses pages
- Event organizer → Public pages: uses pages
- Administrator → Public pages: uses pages
- Express application → Public pages: serves static
app.js - Band or musician → Express application: calls API
README.md - Event organizer → Express application: calls API
README.md - Administrator → Express application: calls API
README.md - Express application → Account access: mounts routes
app.js - Express application → Band profiles and search: mounts routes
app.js - Express application → Availability posts: mounts routes
app.js - Express application → Organizer connections: mounts routes
app.js - Express application → Media uploads: mounts routes
app.js - Express application → Role dashboards: mounts routes
app.js - Express application → Admin moderation: mounts routes
app.js - Express application → User reports: mounts routes
app.js - Account access → User records: creates and finds
routes/auth.js - Account access → Band profile data: creates and finds
routes/auth.js - Account access → Password hashing: hashes passwords
routes/auth.js - Account access → Input validation: validates email
routes/auth.js - Account access → Token and role checks: verifies sessions
routes/auth.js - Express application → Request limits: limits API
app.js - Band profiles and search → Band profile data: queries profiles
routes/bands.js - Availability posts → Availability data: manages posts
routes/availability.js - Organizer connections → Connection records: records contacts
routes/connections.js - Role dashboards → Band profile data: loads dashboard
routes/dashboard.js - Role dashboards → Availability data: loads dashboard
routes/dashboard.js - Role dashboards → Connection records: loads dashboard
routes/dashboard.js - Media uploads → Uploaded files: stores files
- User reports → Report records: creates reports
routes/reports.js - Admin moderation → Report records: reviews reports
routes/admin.js - Token and role checks → Database access: checks accounts
middleware/auth.js - User records → Database access: queries data
models/User.js - Band profile data → Database access: queries data
models/BandProfile.js - Availability data → Database access: queries data
models/AvailabilityPost.js - Connection records → Database access: queries data
models/Connection.js - Report records → Database access: queries data
models/Report.js - Database access → Embedded database: initializes fallback
utils/db.js - Database access → PostgreSQL: queries
utils/db.js