How varelamateo/bibliotech works
Bibliotech is a web platform for managing users’ PDF libraries. Users register or log in, then upload, list, and delete their documents; administrators can inspect and delete users. The map follows the documented Express routing and the sampled controller-to-repository and file-cleanup calls. It also retains the documented validation, localization, error handling, and secure DOM-rendering capabilities. Some frontend wiring and admin-route details are unsampled, so those links are shown only where the README or excerpts support them.
Main entry points: server.js Express server · book_routes.js Book routes · admin_controller.js Admin controller · auth_controller.js Auth controller
Components 24
Web experience
- Express server
backend/server.js - Page routes
backend/routes/view_routes.js - Web screens
frontend/html - Browser controllers
frontend/js/front_controllers - Fetch API client
frontend/js/services/api_service.js - DOM components
frontend/js/components/ui_handlers.js
Identity and access
- Auth routes
backend/routes/auth_routes.js - Auth controller
backend/controllers/auth_controller.js - JWT authorization
backend/middleware/auth_middleware.js - User repository
backend/repositories/user_repository.js
Document library
- Book routes
backend/routes/book_routes.js - PDF upload filter
backend/config/multer_config.js - Book controller
backend/controllers/book_controller.js - Book repository
backend/repositories/book_repository.js - PDF storage
Administration
- Admin routes
backend/routes/admin_routes.js - Admin controller
backend/controllers/admin_controller.js
Shared services
- Input validation
backend/middleware/validation_middleware.js - Validator rules
backend/utils/validator - Translations
backend/utils/i18n/i18n.js - File cleanup
backend/utils/file_helper/file_helper.js - Error handling
backend/middleware/global_error_middleware.js
Other components
- Visitor
- MySQL database
Connections 33
- Visitor → Express server: requests pages
backend/server.js - Express server → Page routes: routes pages
backend/server.js - Page routes → Web screens: serves screens
backend/routes/view_routes.js - Visitor → Web screens: uses
- Browser controllers → Fetch API client: calls API
- Browser controllers → DOM components: renders UI
- Express server → Auth routes: mounts routes
backend/server.js - Express server → Book routes: mounts routes
backend/server.js - Express server → Admin routes: mounts routes
backend/server.js - Auth routes → Input validation: validates input
backend/routes/auth_routes.js - Auth routes → Auth controller: dispatches to
backend/routes/auth_routes.js - Auth controller → User repository: reads and writes
backend/controllers/auth_controller.js - Auth controller → JWT authorization: uses signing key
backend/controllers/auth_controller.js - Auth controller → Translations: gets messages
backend/controllers/auth_controller.js - Book routes → JWT authorization: checks token
backend/routes/book_routes.js - Book routes → PDF upload filter: processes upload
backend/routes/book_routes.js - Book routes → Input validation: validates upload
backend/routes/book_routes.js - Book routes → Book controller: dispatches to
backend/routes/book_routes.js - Book controller → Book repository: reads and writes
backend/controllers/book_controller.js - Book controller → File cleanup: cleans files
backend/controllers/book_controller.js - Book controller → Translations: gets messages
backend/controllers/book_controller.js - PDF upload filter → PDF storage: stores PDFs
- Book repository → MySQL database: executes procedures
backend/repositories/book_repository.js - User repository → MySQL database: executes procedures
backend/repositories/user_repository.js - Admin routes → Admin controller: dispatches to
backend/routes/admin_routes.js - Admin controller → User repository: reads and writes
backend/controllers/admin_controller.js - Admin controller → Book repository: lists user books
backend/controllers/admin_controller.js - Admin controller → File cleanup: cleans files
backend/controllers/admin_controller.js - Admin controller → Translations: gets messages
backend/controllers/admin_controller.js - Input validation → Validator rules: applies rules
backend/middleware/validation_middleware.js - Input validation → File cleanup: removes rejected PDFs
backend/middleware/validation_middleware.js - Express server → Error handling: registers last
backend/server.js - Error handling → Translations: translates errors
backend/middleware/global_error_middleware.js