How evansabraham/spotify-microservice-application works
This is a microservice-based music streaming platform. Users browse albums and songs, play audio, and can register or log in; administrators manage albums, songs, and thumbnails. The frontend’s route map and playback component are represented, while the README documents its REST integration with the three backend services. Backend routes dispatch to domain handlers, which access service-specific databases and, where documented or shown, media storage and Redis caching. Frontend data-fetching details and several integrations are unsampled, so those relationships are documented at service level rather than attributed to unverified frontend modules.
Main entry points: App.tsx Route selection · controllers.ts Catalog administration · controller.ts Catalog retrieval · route.ts Admin API routes
Components 22
React frontend
- Route selection
frontend/src/App.tsx - Browse pages
frontend/src/pages - Playlist page
frontend/src/pages/PlayList.tsx - Admin dashboard
frontend/src/pages/Admin.tsx - Audio player
frontend/src/components/Player.tsx - Client providers
frontend/src/Providers
User service
- User API routes
user-service/src/routes.ts - Auth and profile
user-service/src/controllers.ts - JWT guard
user-service/src/middleware.ts - User records
user-service/src/models.ts
Admin service
- Admin API routes
admin-service/src/route.ts - Catalog administration
admin-service/src/controllers.ts - Admin authorization
admin-service/src/middleware.ts - Admin server and schema
admin-service/src/index.ts
Song service
- Catalog API routes
song-service/src/route.ts - Catalog retrieval
song-service/src/controller.ts
Data and media
- MongoDB
- Admin PostgreSQL
admin-service/src/config/db.ts - Song PostgreSQL
song-service/src/config/db.ts - Redis cache
- Cloudinary media
Other components
- Listener / admin
Connections 26
- Listener / admin → Route selection: opens
README.md - Route selection → Browse pages: routes to
frontend/src/App.tsx - Route selection → Playlist page: routes to
frontend/src/App.tsx - Route selection → Admin dashboard: routes to
frontend/src/App.tsx - Browse pages → Audio player: plays with
- Client providers → Browse pages: supplies data
- Client providers → Admin dashboard: supplies actions
frontend/src/Providers/AdminProvider.tsx - Listener / admin → User API routes: uses REST API
README.md - Listener / admin → Catalog API routes: uses REST API
README.md - Listener / admin → Admin API routes: uses REST API
README.md - User API routes → Auth and profile: dispatches
user-service/src/routes.ts - User API routes → JWT guard: guards profile
user-service/src/routes.ts - Auth and profile → User records: reads and writes
user-service/src/controllers.ts - JWT guard → User records: loads user
user-service/src/middleware.ts - User records → MongoDB: persists in
README.md - Admin API routes → Admin authorization: guards requests
admin-service/src/route.ts - Admin API routes → Catalog administration: dispatches
admin-service/src/route.ts - Catalog administration → Admin PostgreSQL: queries
admin-service/src/controllers.ts - Catalog administration → Cloudinary media: uploads media
admin-service/src/controllers.ts - Catalog administration → Redis cache: invalidates cache
admin-service/src/controllers.ts - Admin server and schema → Admin API routes: mounts
admin-service/src/index.ts - Admin server and schema → Admin PostgreSQL: initializes schema
admin-service/src/index.ts - Catalog API routes → Catalog retrieval: dispatches
song-service/src/route.ts - Catalog retrieval → Song PostgreSQL: queries
song-service/src/controller.ts - Catalog retrieval → Redis cache: reads and caches
song-service/src/controller.ts - Catalog retrieval → Cloudinary media: fetches media
README.md