How zammanzim/osistarpanone works
OSIS Tarpan One is a browser-based OSIS organization portal: users navigate a shared app, authenticate where required, and use public or member-facing features to view and manage organizational information. The domain spans communications and public content, member operations, planning, finance, and forms; feature modules access Supabase through a shared data layer. Offline queuing and media uploads are supporting runtime paths. Evidence is limited to the supplied tree and excerpts, so unsampled feature-to-feature wiring is omitted.
Main entry points: app.js SPA navigation · db.js Supabase data layer · outbox.js Offline outbox · formulir.js Form builder
Components 21
Application shell
- SPA navigation
js/app.js
Identity and media
- Login and access
js/osis-auth.js - Media presign worker
worker/osis-media-presign.js - Cloudflare R2
Public information
- Public information
js/home.js - News and activities
js/informasi.js - Gallery and achievements
js/galeri.js
OSIS operations
- Members and attendance
js/anggota.js - Programs and tasks
js/program.js - Meetings and archives
js/notulensi.js - Finance and savings
js/keuangan.js - Form builder
js/formulir.js - Polling and feedback
js/polling.js
Data and offline
- Supabase data layer
js/db.js - Supabase
- Offline outbox
js/outbox.js - Browser IndexedDB
- PWA service worker
sw.js
Other components
- OSIS member
- Public visitor
- Form respondent
Connections 35
- OSIS member → SPA navigation: opens app
- Public visitor → SPA navigation: opens app
- Form respondent → Form builder: submits response
- SPA navigation → Login and access: initializes auth
- SPA navigation → Public information: routes to
- SPA navigation → News and activities: routes to
- SPA navigation → Gallery and achievements: routes to
- SPA navigation → Members and attendance: routes to
- SPA navigation → Programs and tasks: routes to
- SPA navigation → Meetings and archives: routes to
- SPA navigation → Finance and savings: routes to
- SPA navigation → Form builder: routes to
- SPA navigation → Polling and feedback: routes to
- Login and access → Supabase: authenticates
- Login and access → Supabase data layer: loads account
- Public information → Supabase data layer: reads data
- News and activities → Supabase data layer: reads and writes
- Gallery and achievements → Supabase data layer: reads and writes
- Members and attendance → Supabase data layer: reads and writes
- Programs and tasks → Supabase data layer: reads and writes
- Meetings and archives → Supabase data layer: reads and writes
- Finance and savings → Supabase data layer: reads and writes
- Form builder → Supabase data layer: reads and writes
- Polling and feedback → Supabase data layer: reads and writes
- Supabase data layer → Supabase: queries and RPCs
- Form builder → Media presign worker: requests upload URL
- Media presign worker → Supabase: validates identity
- Media presign worker → Cloudflare R2: signs upload
- Members and attendance → Offline outbox: queues offline writes
- Programs and tasks → Offline outbox: queues offline writes
- Finance and savings → Offline outbox: queues offline writes
- Form builder → Offline outbox: queues offline writes
- Offline outbox → Browser IndexedDB: stores operations
- Offline outbox → Supabase data layer: replays operations
- PWA service worker → OSIS member: serves cached shell