How basuki-rahmat/pgni-lampung works
PGNI Provinsi Lampung is a browser-based directory and administration app for registering and verifying Qur’an teachers, publishing news, and checking registration status. Visitors can search the directory or submit a registration; officers log in to review records and update their status, while provincial administrators can publish news and use the MySQL export panel. App owns application state and persists it in browser local storage. Evidence is based on the supplied tree and excerpts; some component wiring and MySQLCenter implementation were not sampled, so uncertain connections are omitted.
Main entry points: App.tsx App coordinator · RegistrationForm.tsx Teacher registration · types.ts Domain types · LandingPage.tsx Public landing
Components 15
Public experience
- Public landing
src/components/LandingPage.tsx - Teacher registration
src/components/RegistrationForm.tsx - News and articles
src/components/NewsSection.tsx
Officer operations
- Officer login
src/components/LoginForm.tsx - Officer dashboard
src/components/OfficerDashboard.tsx - MySQL tools
src/components/MySQLCenter.tsx
Application state
- App coordinator
src/App.tsx - Browser storage
- Initial records
src/data/initialData.ts
Data utilities
- Regional hierarchy
src/data/lampungData.ts - Image compressor
src/utils/imageCompressor.ts - SQL exporter
src/utils/sqlExporter.ts - Domain types
src/types.ts
Other components
- Visitor
- Officer
Connections 21
- Visitor → Public landing: browses
- Visitor → Teacher registration: submits
- Officer → Officer login: signs in
- Officer → Officer dashboard: manages records
- App coordinator → Public landing: renders
- App coordinator → Officer login: renders
- App coordinator → Officer dashboard: renders
- App coordinator → News and articles: renders
- App coordinator → Browser storage: reads and writes
- App coordinator → Initial records: seeds defaults
- Public landing → Teacher registration: offers registration
- Teacher registration → Image compressor: compresses photos
- Teacher registration → Regional hierarchy: uses locations
- Officer dashboard → MySQL tools: shows tools
- MySQL tools → SQL exporter: exports SQL
- App coordinator → SQL exporter: provides records
- App coordinator → Domain types: uses models
- Public landing → Domain types: uses models
- Teacher registration → Domain types: uses models
- Officer dashboard → Domain types: uses models
- News and articles → Domain types: uses models