How fullstacksofteng101/jukebox-pro works
Jukebox Pro is an Express music-catalog and playlist API backed by PostgreSQL. The implemented request flow is client → server/app → track or playlist router → query functions → database; playlist handlers also retrieve tracks and add playlist-track associations. The README describes account registration/login and user-owned playlist access, but the sampled app does not mount user routes or authentication middleware, and the tree contains no user API module. Those documented account capabilities are shown as an unverified API branch, not as implemented wiring.
Main entry points: client.js PostgreSQL client · seed.js Sample data seeding · playlists.js Playlist routes · tracks.js Track queries
Components 17
HTTP runtime
- Server startup
server.js - Express app
app.js
Identity and access
- Account flows
api - Token lookup
middleware/getUserFromToken.js - Body validation
middleware/requireBody.js - User guard
middleware/requireUser.js - JWT utilities
utils/jwt.js
Music and playlists
- Playlist routes
api/playlists.js - Track routes
api/tracks.js
PostgreSQL data
- Playlist queries
db/queries/playlists.js - Playlist-track queries
db/queries/playlists_tracks.js - Track queries
db/queries/tracks.js - User queries
db/queries/users.js - PostgreSQL client
db/client.js - Relational schema
db/schema.sql - Sample data seeding
db/seed.js
Other components
- API client
Connections 23
- API client → Server startup: sends requests
- Server startup → Express app: starts
server.js - Server startup → PostgreSQL client: connects
server.js - Express app → Playlist routes: mounts routes
app.js - Express app → Track routes: mounts routes
app.js - API client → Account flows: registers or logs in
README.md - Account flows → User queries: creates or checks users
README.md - Account flows → JWT utilities: issues tokens
README.md - Token lookup → JWT utilities: verifies tokens
middleware/getUserFromToken.js - Token lookup → User queries: loads user
middleware/getUserFromToken.js - Playlist routes → Playlist queries: queries playlists
api/playlists.js - Playlist routes → Playlist-track queries: adds track
api/playlists.js - Playlist routes → Track queries: loads playlist tracks
api/playlists.js - Track routes → Track queries: queries tracks
api/tracks.js - Playlist queries → PostgreSQL client: runs SQL
db/queries/playlists.js - Playlist-track queries → PostgreSQL client: runs SQL
db/queries/playlists_tracks.js - Track queries → PostgreSQL client: runs SQL
db/queries/tracks.js - User queries → PostgreSQL client: runs SQL
db/queries/users.js - Sample data seeding → User queries: creates users
db/seed.js - Sample data seeding → Playlist queries: creates playlists
db/seed.js - Sample data seeding → Track queries: creates tracks
db/seed.js - Sample data seeding → Playlist-track queries: adds playlist tracks
db/seed.js - Relational schema → PostgreSQL client: defines stored tables
README.md