How adynu182/sigap-web works
SIGAP is a web app for SPPG teams to self-assess HACCP/GMP compliance and for administrators to verify accounts and manage assessment clauses. The main workflow is registration and approval, then answering clauses with findings and optional evidence photos, followed by a gap-map review and Excel results export. Admins also manage SPPG accounts and questions, and can back up data. The sampled source confirms key authentication, assessment, review, results, and question-management interactions; other admin page behavior is represented from the README and tree, with uncertain wiring omitted.
Main entry points: AuthProvider.tsx Auth and profile · assessment/page.tsx Clause assessment · admin/page.tsx Admin dashboard · results/page.tsx Results and export
Components 24
Access and identity
- Home and entry
src/app/page.tsx - SPPG registration
src/app/register/page.tsx - Login
src/app/login/page.tsx - Auth and profile
src/context/AuthProvider.tsx - Pending notice
src/app/pending/page.tsx - SPPG access guard
src/components/RequireApprovedSppg.tsx - Admin access guard
src/components/RequireAdmin.tsx - App navigation
src/components/AppShell.tsx
SPPG assessment
- Clause assessment
src/app/assessment/page.tsx - Gap map
src/app/review/page.tsx - Results and export
src/app/results/page.tsx
Administration
- Admin dashboard
src/app/admin/page.tsx - SPPG approvals
src/app/admin/sppg/page.tsx - SPPG detail
src/app/admin/sppg/[uid]/page.tsx - Question management
src/app/admin/questions/page.tsx - Seed clauses
src/lib/seed-questions.ts
Firebase services
- Firebase client
src/lib/firebase.ts - Firebase Auth
- Firestore
- Firebase Storage
- Firestore rules
firestore.rules - Storage rules
storage.rules
Other components
- SPPG user
- Administrator
Connections 48
- SPPG user → Home and entry: opens
- Home and entry → SPPG registration: starts registration
- Home and entry → Login: starts login
- SPPG user → SPPG registration: submits details
- SPPG registration → Auth and profile: registers account
- Auth and profile → Firebase client: uses client
- Auth and profile → Firebase Auth: creates account
- Auth and profile → Firestore: writes profile
- SPPG registration → Pending notice: routes after registration
- SPPG user → Login: submits credentials
- Login → Auth and profile: signs in
- Auth and profile → Firebase Auth: authenticates
- Auth and profile → Firestore: listens to profile
- Auth and profile → Pending notice: pending status
- SPPG access guard → Auth and profile: checks profile
- Admin access guard → Auth and profile: checks role
- SPPG user → Clause assessment: answers clauses
- Clause assessment → SPPG access guard: requires approval
- Clause assessment → Firestore: reads questions and answers
- Clause assessment → Firestore: writes answers
- Clause assessment → Firebase Storage: uploads evidence
- Clause assessment → Gap map: opens map
- Gap map → SPPG access guard: requires approval
- Gap map → Firestore: reads clauses and answers
- SPPG user → Results and export: views results
- Results and export → SPPG access guard: requires approval
- Results and export → Firestore: reads clauses and answers
- Results and export → Results and export: exports Excel
- Administrator → Admin dashboard: opens dashboard
- Admin dashboard → Admin access guard: requires admin
- Admin dashboard → Firestore: reads profiles and clauses
- Admin dashboard → Firestore: reads assessment backup data
- Admin dashboard → SPPG approvals: opens approvals
- Administrator → SPPG approvals: reviews registrations
- SPPG approvals → Admin access guard: requires admin
- SPPG approvals → Firestore: manages profiles
- SPPG approvals → SPPG detail: opens SPPG detail
- SPPG detail → Admin access guard: requires admin
- Administrator → Question management: manages clauses
- Question management → Admin access guard: requires admin
- Question management → Firestore: reads and writes clauses
- Question management → Seed clauses: loads seed clauses
- Seed clauses → Question management: provides clauses
- Firebase client → Firestore: connects
- Firebase client → Firebase Auth: connects
- Firebase client → Firebase Storage: connects
- Firestore rules → Firestore: controls access
- Storage rules → Firebase Storage: controls access