How mufaxp/mugalab works
MUGALAB is a school-laboratory management web app: public users view weekly schedules or submit schedule requests, which staff review and may turn into scheduled activities. The backend also manages inventory, borrowing, damage and practical-work reports, users, labs, and settings. README documents a WhatsApp chatbot, but its source is absent from this tree; chatbot internals and their wiring are therefore not mapped. Frontend and route behavior is represented only where supported by the tree and README.
Main entry points: app.js Express API · db.js MySQL database · pengajuan.controller.js Schedule requests · jadwal.controller.js Schedule management
Components 21
Web clients
- Public frontend
frontend/js/main.js - Login frontend
frontend/login/script.js
API foundation
- Express API
backend/app.js - MySQL database
backend/config/db.js - WhatsApp notifications
backend/shared/utils/whatsapp.js
Lab operations
- Schedule management
backend/modules/jadwal/jadwal.controller.js - Schedule requests
backend/modules/pengajuan/pengajuan.controller.js - Equipment inventory
backend/modules/alat/alat.controller.js - Materials and usage
backend/modules/bahan/bahan.controller.js - Facilities inventory
backend/modules/sarana/sarana.controller.js - Loans and returns
backend/modules/peminjaman/peminjaman.controller.js - Damage reports
backend/modules/laporan-kerusakan/laporan-kerusakan.controller.js - Practical-work reports
backend/modules/laporan-praktikum/laporan-praktikum.controller.js - PDF generation
backend/modules/laporan-praktikum/laporan-praktikum.pdf.service.js
Administration
- Authentication
backend/modules/auth/auth.controller.js - Lab management
backend/modules/lab/lab.controller.js - User management
backend/modules/user/user.controller.js - Web settings
backend/modules/settings/settings.controller.js
Other components
- Public users
- Admin, laboran, guru
- Fonnte service
Connections 34
- Public users → Public frontend: use
- Admin, laboran, guru → Login frontend: sign in
- Public frontend → Express API: request API
- Login frontend → Express API: request API
- Express API → Authentication: dispatches
- Express API → Schedule management: dispatches
- Express API → Schedule requests: dispatches
- Express API → Equipment inventory: dispatches
- Express API → Materials and usage: dispatches
- Express API → Facilities inventory: dispatches
- Express API → Loans and returns: dispatches
- Express API → Damage reports: dispatches
- Express API → Practical-work reports: dispatches
- Express API → Lab management: dispatches
- Express API → User management: dispatches
- Express API → Web settings: dispatches
- Authentication → MySQL database: reads users
- Schedule management → MySQL database: reads/writes
- Schedule requests → MySQL database: reads/writes
- Schedule requests → Schedule management: creates schedule
- Equipment inventory → MySQL database: reads/writes
- Materials and usage → MySQL database: reads/writes
- Facilities inventory → MySQL database: reads/writes
- Loans and returns → MySQL database: reads/writes
- Loans and returns → Damage reports: records damage
- Damage reports → MySQL database: reads/writes
- Practical-work reports → MySQL database: reads/writes
- Practical-work reports → PDF generation: generates PDF
- Lab management → MySQL database: reads/writes
- User management → MySQL database: reads/writes
- Web settings → MySQL database: reads/writes
- Schedule management → WhatsApp notifications: sends alerts
- Schedule requests → WhatsApp notifications: sends alerts
- WhatsApp notifications → Fonnte service: sends messages