How ucup-pristel/perpustakaan works
Ucup Edu Lib is a digital learning library organized around career and interest fields. Learners browse fields, search for materials, open available PDFs, and use account features; admins manage the catalog. The frontend calls a REST API, with authentication and catalog operations backed by a relational database. The sampled code directly shows home and search requests, login and registration, and server-side synonym search. Other route capabilities are represented from their module paths; their internal call wiring was not sampled.
Main entry points: server.js REST Server · db.js DB Connection · App.jsx App Router · api.js API Client
Components 22
Learner Web App
- App Router
frontend/src/App.jsx - Field Browser
frontend/src/components/Home.jsx - Search Results
frontend/src/pages/SearchResults.jsx - Auth State
frontend/src/context/AuthContext.jsx - Content Pages
frontend/src/pages - API Client
frontend/src/lib/api.js
Backend API
- REST Server
backend/server.js - Account Routes
backend/routes/auth.js - Content Routes
backend/routes/contents.js - Field Routes
backend/routes/fields.js - Subfield Routes
backend/routes/subfields.js - Reading Progress
backend/routes/progress.js - Activity Routes
backend/routes/activity.js - Admin Routes
backend/routes/admin.js - Access Control
backend/middleware/auth.js
Library Services
- Query Variants
backend/helpers/queryParser.js - Object Uploader
backend/utils/r2Uploader.js
Persistent State
- DB Connection
backend/models/db.js - Library Database
database/schema.sql
Other components
- Learner
- Administrator
- R2 Storage
Connections 29
- Learner → App Router: uses
- Administrator → App Router: uses
- App Router → Field Browser: routes
- App Router → Search Results: routes
- App Router → Auth State: provides auth
- App Router → Content Pages: routes
- Field Browser → API Client: requests fields
- Search Results → API Client: requests search
- Auth State → API Client: requests auth
- API Client → REST Server: HTTP requests
- REST Server → Account Routes: mounts
- REST Server → Content Routes: mounts
- REST Server → Field Routes: mounts
- REST Server → Subfield Routes: mounts
- REST Server → Reading Progress: mounts
- REST Server → Activity Routes: mounts
- REST Server → Admin Routes: mounts
- REST Server → Query Variants: expands queries
- REST Server → DB Connection: searches catalog
- Account Routes → DB Connection: reads/writes users
- Account Routes → Access Control: issues tokens
- Content Routes → DB Connection: accesses content
- Field Routes → DB Connection: accesses fields
- Subfield Routes → DB Connection: accesses subfields
- Reading Progress → DB Connection: stores progress
- Activity Routes → DB Connection: accesses activity
- Admin Routes → Access Control: checks access
- DB Connection → Library Database: reads/writes
- Object Uploader → R2 Storage: uploads files