How mohi007/somiti works
This is a Bengali-language cooperative (somiti) management web app. Members and administrators enter through the Next.js app, use domain pages to manage accounts, contributions, governance, and investments, and view or print records. The shared Somiti context supplies application state and synchronizes records with Supabase; notification APIs and browser push form a separate capability. The source index and excerpts support the main page-to-context and context-to-store links, but do not expose every page’s runtime behavior.
Main entry points: SomitiContext.tsx Somiti state and sync · investments/page.tsx Investment workflow · app/page.tsx App shell and login · dashboard/page.tsx Dashboard and accounts
Components 21
App entry
- App shell and login
src/app/page.tsx - Somiti state and sync
src/context/SomitiContext.tsx
Member finance
- Dashboard and accounts
src/app/pages/dashboard/page.tsx - Dues and payments
src/app/pages/dues/page.tsx - Member records
src/app/pages/members/page.tsx - Member account
src/app/pages/my_account/page.tsx - Member profile
src/app/pages/my_profile/page.tsx - Receipts and transactions
src/app/pages/transactions/page.tsx - Bank account
src/app/pages/bank_account/page.tsx - Reports and analytics
src/app/pages/reports/page.tsx
Governance
- Committee management
src/app/pages/committee/page.tsx - Constitution
src/app/pages/constitution/page.tsx - Organization settings
src/app/pages/settings/page.tsx
Investments and notices
- Investment workflow
src/app/pages/investments/page.tsx - Investment decisions
src/components/InvestmentApprovalModal.tsx - Notification center
src/app/pages/notifications/page.tsx - Push notification API
src/app/api/notifications/send/route.ts - Push delivery helper
src/lib/sendPushNotification.ts - Browser service worker
public/sw.js
Other components
- Member or admin
- Supabase database
Connections 19
- Member or admin → App shell and login: opens
- App shell and login → Somiti state and sync: uses state
src/app/page.tsx - Member or admin → Dashboard and accounts: opens pages
- Dashboard and accounts → Somiti state and sync: uses state
src/app/pages/dashboard/page.tsx - Dues and payments → Somiti state and sync: uses state
- Member records → Somiti state and sync: uses state
- Member account → Somiti state and sync: uses state
src/app/pages/my_account/page.tsx - Member profile → Somiti state and sync: uses state
src/app/pages/my_profile/page.tsx - Receipts and transactions → Somiti state and sync: uses state
- Bank account → Somiti state and sync: uses state
src/app/pages/bank_account/page.tsx - Committee management → Somiti state and sync: uses state
src/app/pages/committee/page.tsx - Constitution → Somiti state and sync: uses state
src/app/pages/constitution/page.tsx - Organization settings → Somiti state and sync: uses state
- Investment workflow → Somiti state and sync: uses state
src/app/pages/investments/page.tsx - Investment workflow → Investment decisions: renders decisions
src/app/pages/investments/page.tsx - Reports and analytics → Somiti state and sync: uses state
- Notification center → Somiti state and sync: uses state
src/app/pages/notifications/page.tsx - Somiti state and sync → Supabase database: reads and writes
src/context/SomitiContext.tsx - Push notification API → Push delivery helper: calls sender
src/app/api/notifications/send/route.ts