How rumankl/jhee-passa works
Jhee Passa is a monthly-savings portal for members and administrators. The main member workflow is registration or sign-in, viewing the dashboard, and submitting a deposit; a scheduled endpoint checks monthly deposits and issues penalties. Separate dashboard areas support loan applications and reviews, member administration, notifications, and reference information. The sampled code shows Firebase authentication, Firestore, and Storage access; several dashboard pages are present in the tree but their implementation was not sampled.
Main entry points: AuthContext.tsx Auth and roles · login/page.tsx Sign-in / registration · loans/page.tsx Loan applications · Sidebar.tsx Dashboard navigation
Components 20
Access and navigation
- Landing page
src/app/page.tsx - Sign-in / registration
src/app/login/page.tsx - Auth and roles
src/contexts/AuthContext.tsx - Dashboard navigation
src/components/Sidebar.tsx
Savings and penalties
- Dashboard
src/app/dashboard/page.tsx - Deposit endpoint
src/app/api/deposits/route.ts - Monthly penalty check
src/app/api/penalties/cron/route.ts - Penalty view
src/app/dashboard/penalties/page.tsx
Loans
- Loan applications
src/app/dashboard/loans/page.tsx
Administration and member tools
- Member administration
src/app/dashboard/members/page.tsx - Notifications
src/app/dashboard/notifications/page.tsx - Profile
src/app/dashboard/profile/page.tsx - Profit view
src/app/dashboard/profit/page.tsx - Savings wiki
src/app/dashboard/wiki/page.tsx
Other components
- Visitor / member / admin
- Firebase client
src/lib/firebase.ts - Firebase Admin
src/lib/firebaseAdmin.ts - Firestore
- Firebase Storage
- Scheduler
Connections 33
- Visitor / member / admin → Landing page: opens
- Landing page → Sign-in / registration: links to
- Visitor / member / admin → Sign-in / registration: registers or signs in
- Sign-in / registration → Firebase client: authenticates
- Sign-in / registration → Firestore: writes user
- Auth and roles → Firebase client: tracks auth
- Auth and roles → Firestore: reads user profile
- Dashboard navigation → Auth and roles: reads identity
- Dashboard navigation → Firestore: subscribes to notifications
- Dashboard navigation → Sign-in / registration: signs out to
- Visitor / member / admin → Dashboard: opens
- Dashboard → Auth and roles: reads user
- Dashboard → Deposit endpoint: submits deposit
- Deposit endpoint → Firebase Admin: verifies token
- Deposit endpoint → Firestore: records deposit
- Scheduler → Monthly penalty check: triggers
- Monthly penalty check → Firebase Admin: uses
- Monthly penalty check → Firestore: reads deposits and members; writes penalties
- Visitor / member / admin → Loan applications: applies or reviews
- Loan applications → Auth and roles: reads user
- Loan applications → Firestore: reads and updates loans
- Loan applications → Firebase Storage: uploads loan documents
- Visitor / member / admin → Member administration: administers members
- Member administration → Auth and roles: checks role
- Member administration → Firestore: reads and updates users; writes notifications
- Visitor / member / admin → Notifications: views or manages messages
- Notifications → Auth and roles: reads user
- Notifications → Firestore: reads and updates notifications
- Visitor / member / admin → Penalty view: views penalties
- Visitor / member / admin → Profile: opens
- Visitor / member / admin → Profit view: opens
- Visitor / member / admin → Savings wiki: opens
- Visitor / member / admin → Firebase client: uses client services