How tajwarul23/library_management_backend works
This is a library-management backend: clients use authenticated APIs to discover books, reserve or borrow them, and manage student, inventory, and circulation records; the API returns operation results. Authentication also supports registration, verification, login, and password recovery. Scheduled jobs expire reservations and process overdue returns, while email supports account and circulation notifications. The README gives no further capability details; unsampled routes and controllers are represented only where the source index supports them.
Main entry points: Admin.controller.js Admin operations · server.js Express server · Student.controller.js Student operations · notifyWaitlistUsers.js Waitlist notifications
Components 24
API and access
- Express server
server.js - Auth routes
Routes/Auth.routes.js - Student routes
Routes/Student.router.js - Admin routes
Routes/Admin.router.js - User routes
Routes/User.router.js - Auth middleware
Middlewares/Auth.js
Library operations
- Admin operations
Controllers/Admin.controller.js - Student operations
Controllers/Student.controller.js - Book inventory
Models/Book.model.js - Reservations
Models/ReserveBook.model.js - Issued books
Models/IssuedBook.model.js - Waitlist
Models/Waitlist.model.js
Identity and accounts
- User operations
Controllers/User.controller.js - Authentication
Controllers/Auth.controller.js - Student records
Models/Student.model.js - Student accounts
Models/student_user.model.js - Admin accounts
Models/admin_user.model.js
Notifications and jobs
- Reservation expiry
cron/expireservation.js - Return expiry
cron/expirereturnbook.js - Waitlist notifications
Utils/notifyWaitlistUsers.js - Issue email
Utils/sendBookIssuedEmail.js - Mail transport
Utils/transporter.js
Other components
- API client
- Gmail SMTP
Connections 41
- API client → Express server: sends requests
- Express server → Auth routes: mounts routes
server.js - Express server → Student routes: mounts routes
server.js - Express server → Admin routes: mounts routes
server.js - Express server → User routes: mounts routes
server.js - Auth routes → Authentication: dispatches to
Routes/Auth.routes.js - Student routes → Student operations: dispatches to
Routes/Student.router.js - Admin routes → Admin operations: dispatches to
Routes/Admin.router.js - User routes → User operations: dispatches to
Routes/User.router.js - Student routes → Auth middleware: guards routes
Routes/Student.router.js - Admin routes → Auth middleware: guards routes
Routes/Admin.router.js - User routes → Auth middleware: guards routes
Routes/User.router.js - Auth middleware → Student accounts: loads student
Middlewares/Auth.js - Auth middleware → Admin accounts: loads admin
Middlewares/Auth.js - Authentication → Student accounts: manages accounts
Controllers/Auth.controller.js - Authentication → Admin accounts: manages accounts
Controllers/Auth.controller.js - Authentication → Student records: checks enrollment
Controllers/Auth.controller.js - Admin operations → Book inventory: manages inventory
Controllers/Admin.controller.js - Admin operations → Reservations: handles reservations
Controllers/Admin.controller.js - Admin operations → Issued books: manages loans
Controllers/Admin.controller.js - Admin operations → Student records: manages students
Controllers/Admin.controller.js - Admin operations → Student accounts: looks up users
Controllers/Admin.controller.js - Student operations → Book inventory: searches inventory
Controllers/Student.controller.js - Student operations → Reservations: creates reservations
Controllers/Student.controller.js - Student operations → Issued books: checks loans
Controllers/Student.controller.js - Student operations → Waitlist notifications: notifies on release
Controllers/Student.controller.js - Admin operations → Waitlist notifications: notifies on return
Controllers/Admin.controller.js - Admin operations → Issue email: sends issue notice
Controllers/Admin.controller.js - Waitlist notifications → Book inventory: reads book
Utils/notifyWaitlistUsers.js - Waitlist notifications → Waitlist: reads and clears
Utils/notifyWaitlistUsers.js - Waitlist notifications → Mail transport: sends mail
Utils/notifyWaitlistUsers.js - Issue email → Mail transport: sends mail
Utils/sendBookIssuedEmail.js - Mail transport → Gmail SMTP: connects SMTP
Utils/transporter.js - Express server → Reservation expiry: starts job
server.js - Express server → Return expiry: starts job
server.js - Reservation expiry → Reservations: expires records
cron/expireservation.js - Reservation expiry → Book inventory: updates availability
cron/expireservation.js - Return expiry → Issued books: checks overdue loans
cron/expirereturnbook.js - Return expiry → Student accounts: loads borrowers
cron/expirereturnbook.js - Return expiry → Issue email: sends reminders
cron/expirereturnbook.js - User operations → Student accounts: manages profile
Controllers/User.controller.js