How throwawaybtm/simak-diskum-v5 works
SIMAK DISKUM is a cloud-based agenda management platform with separate protected administration and public-information portals. Administrators authenticate, manage activities through a four-stage lifecycle, maintain master data, detect scheduling conflicts, and generate official reports; the public portal retrieves published agendas and announcements for calendar, agenda, and dashboard views. The shared layer provides domain schemas, privacy-safe publication projection, repositories, scheduling utilities, validation, and report generation. Some implementation paths are unsampled; those links are omitted or marked unverified rather than inferred.
Main entry points: activityRepository.ts Activity repository · main.ts Public app router · ActivityFormController.ts Activity form · publicProjector.ts Privacy projection
Components 28
Administration portal
- Admin router
department-agenda-firebase/apps/admin/src/main.ts - Admin authentication
department-agenda-firebase/apps/admin/src/auth/authService.ts - Activity workflow
department-agenda-firebase/apps/admin/src/pages/ActivityEditWorkflow.ts - Activity form
department-agenda-firebase/apps/admin/src/components/ActivityFormController.ts - Master data management
department-agenda-firebase/apps/admin/src/pages/MasterDataPage.ts - Admin reports
department-agenda-firebase/apps/admin/src/pages/ReportsPage.ts
Public portal
- Public app router
department-agenda-firebase/apps/public/src/main.ts - Agenda filtering
department-agenda-firebase/apps/public/src/components/PublicController.ts - Calendar and dashboard
department-agenda-firebase/apps/public/src/pages/CalendarView.ts - Announcements view
department-agenda-firebase/apps/public/src/pages/AnnouncementsView.ts
Shared domain services
- Privacy projection
department-agenda-firebase/shared/src/projection/publicProjector.ts - Activity schema
department-agenda-firebase/shared/src/schema/activity.ts - Master data schema
department-agenda-firebase/shared/src/schema/master.ts - Audit schema
department-agenda-firebase/shared/src/schema/audit.ts - Public DTO
department-agenda-firebase/shared/src/schema/publicDto.ts - WIB scheduling utilities
department-agenda-firebase/shared/src/scheduling/timeUtils.ts - Conflict detection
department-agenda-firebase/shared/src/scheduling/conflictDetector.ts - Activity validation
department-agenda-firebase/shared/src/validation/activityValidator.ts - Privacy scanning
department-agenda-firebase/shared/src/validation/privacyScanner.ts
Persistence and publication
- Cloud Firestore
- Activity repository
department-agenda-firebase/shared/src/repository/activityRepository.ts - Master repository
department-agenda-firebase/shared/src/repository/masterRepository.ts - Public repository
department-agenda-firebase/shared/src/repository/publicRepository.ts
Reporting and exports
- Eight-column report
department-agenda-firebase/shared/src/reports/eightColumnReport.ts - Excel export
department-agenda-firebase/shared/src/reports/xlsxGenerator.ts - Image export
department-agenda-firebase/shared/src/reports/imageGenerator.ts
Other components
- Administrator
- Public visitor
Connections 29
- Administrator → Admin router: uses
- Admin router → Admin authentication: signs in
department-agenda-firebase/apps/admin/src/main.ts - Admin router → Activity workflow: routes to
department-agenda-firebase/apps/admin/src/main.ts - Activity workflow → Activity form: uses
department-agenda-firebase/apps/admin/src/pages/ActivityEditWorkflow.ts - Activity form → Activity validation: validates
department-agenda-firebase/apps/admin/src/components/ActivityFormController.ts - Activity form → Privacy scanning: scans text
department-agenda-firebase/apps/admin/src/components/ActivityFormController.ts - Activity form → Conflict detection: checks conflicts
department-agenda-firebase/apps/admin/src/components/ActivityFormController.ts - Activity workflow → Activity repository: persists activity
- Master data management → Master repository: manages records
- Activity repository → Cloud Firestore: transacts writes
department-agenda-firebase/shared/src/repository/activityRepository.ts - Master repository → Cloud Firestore: stores records
- Activity repository → Privacy projection: builds projection
department-agenda-firebase/shared/src/repository/activityRepository.ts - Privacy projection → Public DTO: produces
department-agenda-firebase/shared/src/projection/publicProjector.ts - Privacy projection → Privacy scanning: sanitizes text
department-agenda-firebase/shared/src/projection/publicProjector.ts - Privacy projection → WIB scheduling utilities: formats dates
department-agenda-firebase/shared/src/projection/publicProjector.ts - Activity repository → Activity schema: uses records
department-agenda-firebase/shared/src/repository/activityRepository.ts - Activity repository → Audit schema: writes audit
department-agenda-firebase/shared/src/repository/activityRepository.ts - Activity repository → Master data schema: uses lookups
department-agenda-firebase/shared/src/repository/activityRepository.ts - Public visitor → Public app router: browses
- Public app router → Cloud Firestore: reads published data
department-agenda-firebase/apps/public/src/main.ts - Public app router → Calendar and dashboard: renders calendar
department-agenda-firebase/apps/public/src/main.ts - Public app router → Announcements view: renders announcements
department-agenda-firebase/apps/public/src/main.ts - Calendar and dashboard → Agenda filtering: uses calendar logic
department-agenda-firebase/apps/public/src/pages/CalendarView.ts - Agenda filtering → WIB scheduling utilities: sorts agendas
department-agenda-firebase/apps/public/src/components/PublicController.ts - Public app router → Public repository: fetches public agenda
- Admin reports → Eight-column report: generates reports
- Eight-column report → WIB scheduling utilities: formats schedule
department-agenda-firebase/shared/src/reports/eightColumnReport.ts - Eight-column report → Excel export: exports workbook
- Image export → Eight-column report: uses report data
department-agenda-firebase/shared/src/reports/imageGenerator.ts