How daniel-joseph-web/backend-lasustech works
This repository implements an institutional computer-based testing platform: students authenticate, take timed exams, and submit answers for scoring, while lecturers author and import exam content and administrators manage scheduling, results, and operations. The sampled sources show API routing, attempt scoring, media persistence, import processing, and shared database access. Other listed capabilities are represented at subsystem level where source was not sampled; relationships are included only where the index or excerpts support them.
Main entry points: index.ts Application Database · main.ts HTTP API · schedule.controller.ts Scheduling · import.processor.ts Import Processing
Components 28
Identity and Access
- Authentication
apps/api/src/modules/auth/auth.service.ts - Auth Middleware
apps/api/src/modules/auth/auth.middleware.ts - Session Tokens
apps/api/src/modules/auth/tokens.ts
Exam Delivery
- Student Services
apps/api/src/modules/student/student.service.ts - Exam Attempts
apps/api/src/modules/public-exams/public-exams.controller.ts - Attempt Scoring
apps/api/src/modules/public-exams/scoring.ts
Authoring and Import
- Exam Authoring
apps/api/src/modules/lecturer/exams.controller.ts - Question Authoring
apps/api/src/modules/lecturer/questions.controller.ts - Import API
apps/api/src/modules/lecturer/import.controller.ts - Import Processing
apps/worker/src/modules/import/import.processor.ts - Document Parsing
apps/worker/src/modules/import/parsers/docx.parser.ts - PDF Parsing
apps/worker/src/modules/import/parsers/pdf.parser.ts - Spreadsheet Parsing
apps/worker/src/modules/import/parsers/spreadsheet.parser.ts - AI Extraction
apps/worker/src/modules/import/services/cloudflare-ai.service.ts - Import Media Storage
apps/worker/src/modules/import/services/media-storage.service.ts
Administration and Operations
- Admin Operations
apps/api/src/modules/admin/admin.routes.ts - Scheduling
apps/api/src/modules/admin/schedule.controller.ts - Results Management
apps/api/src/modules/admin/results.controller.ts
Platform Services
- HTTP API
apps/api/src/main.ts - Media Storage
apps/api/src/lib/media.ts - Notifications
apps/api/src/modules/notifications/notifications.controller.ts - Realtime Monitoring
apps/realtime/src/modules/monitoring/socket.ts - Audit Trail
apps/api/src/lib/audit.ts - Platform Settings
apps/api/src/lib/settings.ts - Application Database
packages/db/src/index.ts
Other components
- Student
- Lecturer
- Administrator
Connections 39
- Student → HTTP API: uses
- Lecturer → HTTP API: uses
- Administrator → HTTP API: uses
- HTTP API → Authentication: routes auth
apps/api/src/main.ts - HTTP API → Student Services: routes requests
apps/api/src/main.ts - HTTP API → Exam Attempts: routes attempts
apps/api/src/main.ts - HTTP API → Admin Operations: routes admin
apps/api/src/main.ts - HTTP API → Application Database: initializes client
apps/api/src/main.ts - Authentication → Session Tokens: creates tokens
apps/api/src/modules/auth/auth.service.ts - Authentication → Platform Settings: reads policy
apps/api/src/modules/auth/auth.service.ts - Authentication → Application Database: reads and writes
apps/api/src/modules/auth/auth.service.ts - Auth Middleware → Session Tokens: verifies tokens
apps/api/src/modules/auth/auth.middleware.ts - Auth Middleware → Platform Settings: reads policy
apps/api/src/modules/auth/auth.middleware.ts - Student Services → Attempt Scoring: uses scoring
apps/api/src/modules/student/student.service.ts - Student Services → Application Database: reads and writes
apps/api/src/modules/student/student.service.ts - Exam Attempts → Attempt Scoring: scores attempts
apps/api/src/modules/public-exams/public-exams.controller.ts - Exam Attempts → Media Storage: resolves media
apps/api/src/modules/public-exams/public-exams.controller.ts - Exam Attempts → Application Database: reads and writes
apps/api/src/modules/public-exams/public-exams.controller.ts - Exam Authoring → Media Storage: resolves media
apps/api/src/modules/lecturer/exams.controller.ts - Exam Authoring → Application Database: reads and writes
apps/api/src/modules/lecturer/exams.controller.ts - Question Authoring → Media Storage: uses media
apps/api/src/modules/lecturer/questions.controller.ts - Question Authoring → Application Database: reads and writes
apps/api/src/modules/lecturer/questions.controller.ts - Import Processing → Document Parsing: parses DOCX
apps/worker/src/modules/import/import.processor.ts - Import Processing → PDF Parsing: parses PDF
apps/worker/src/modules/import/import.processor.ts - Import Processing → Spreadsheet Parsing: parses spreadsheets
apps/worker/src/modules/import/import.processor.ts - Import Processing → AI Extraction: extracts content
apps/worker/src/modules/import/import.processor.ts - Import Processing → Import Media Storage: persists figures
apps/worker/src/modules/import/import.processor.ts - Import Media Storage → Media Storage: reuses storage
apps/worker/src/modules/import/services/media-storage.service.ts - Import Media Storage → Application Database: stores metadata
apps/worker/src/modules/import/services/media-storage.service.ts - Admin Operations → Scheduling: routes scheduling
- Admin Operations → Results Management: routes results
- Scheduling → Application Database: reads and writes
apps/api/src/modules/admin/schedule.controller.ts - Scheduling → Platform Settings: reads settings
apps/api/src/modules/admin/schedule.controller.ts - Scheduling → Notifications: notifies users
apps/api/src/modules/admin/schedule.controller.ts - Scheduling → Realtime Monitoring: publishes updates
apps/api/src/modules/admin/schedule.controller.ts - Scheduling → Student Services: uses student logic
apps/api/src/modules/admin/schedule.controller.ts - Notifications → Application Database: reads notifications
apps/api/src/modules/notifications/notifications.controller.ts - Audit Trail → Application Database: stores audit chain
apps/api/src/lib/audit.ts - Administrator → Audit Trail: administrates audit