How jay2323-tech/bookscavanger-backend works
BookScavenger is an Express backend for public book discovery and distance-aware library search, plus librarian inventory management, onboarding/approval, uploads, and administration. Requests enter through the server and are dispatched to route modules, controllers, authorization middleware, and Supabase-backed persistence. The sampled code confirms the public search, librarian signup/onboarding, approved-library workflow, inventory operations, Excel upload analytics, and admin approval/statistics paths. Some route files and middleware implementations were not sampled, so those dispatch links are represented conservatively.
Components 23
API Entry
- Express Server
src/server.js - Auth Routes
src/routes/auth.routes.js - Public Routes
src/routes/public.routes.js - Library Routes
src/routes/library.routes.js - Upload Routes
src/routes/upload.routes.js - Onboarding Routes
src/routes/onboarding.routes.js - Admin Routes
src/routes/admin.routes.js
Identity Access
- Librarian Signup
src/controllers/auth.controller.js - Library Onboarding
src/controllers/onboarding.controller.js - Library Authorization
src/middleware/authenticateLibrary.js - Librarian Role Gate
src/middleware/authenticateLibrarianRoleOnly.js - Admin Authorization
src/middleware/authenticateAdmin.js
Library Operations
- Inventory Controller
src/controllers/library.controller.js - Excel Upload Controller
src/controllers/upload.controller.js
Discovery Admin
- Book Search
src/controllers/public.controller.js - Distance Calculator
src/utils/distance.js - Admin Controller
src/controllers/admin.controller.js
Persistence Services
- Supabase Auth
- Supabase Database
- Analytics Records
Other components
- Book Seeker
- Librarian
- Administrator
Connections 31
- Book Seeker → Express Server: searches
- Librarian → Express Server: manages library
- Administrator → Express Server: administers
- Express Server → Auth Routes: dispatches
- Express Server → Public Routes: dispatches
- Express Server → Library Routes: dispatches
- Express Server → Upload Routes: dispatches
- Express Server → Onboarding Routes: dispatches
- Express Server → Admin Routes: dispatches
- Auth Routes → Librarian Signup: handles signup
- Public Routes → Book Search: handles search
- Library Routes → Library Authorization: checks access
- Library Routes → Inventory Controller: handles inventory
- Upload Routes → Library Authorization: checks access
- Upload Routes → Excel Upload Controller: handles upload
- Onboarding Routes → Librarian Role Gate: checks role
- Onboarding Routes → Library Onboarding: handles onboarding
- Admin Routes → Admin Authorization: checks access
- Admin Routes → Admin Controller: handles administration
- Librarian Signup → Supabase Auth: creates user
- Librarian Signup → Supabase Database: creates library
- Library Onboarding → Supabase Database: creates library
- Library Authorization → Supabase Auth: validates token
- Library Authorization → Supabase Database: checks approval
- Inventory Controller → Supabase Database: reads and writes books
- Excel Upload Controller → Supabase Database: inserts books
- Excel Upload Controller → Analytics Records: records upload
- Book Search → Supabase Database: queries books
- Book Search → Distance Calculator: calculates distance
- Book Search → Analytics Records: records search
- Admin Controller → Supabase Database: reads and updates records