How aether-frame-creater/infinite-techfest-2026 works
Purpose and Current Scope
Infinite Techfest 2026 is an Expo/React Native symposium-management client for R.P. Sarathy Institute of Technology. The intended platform spans authentication, registrations, payments, QR attendance, certificates, dashboards, and administration, but the current implementation is centered on app shell, authentication, and a student home route. Planned backend data and most symposium workflows are not yet present.
Application Entry and Navigation
Expo Router provides file-based navigation. The root layout establishes application-wide routing and providers; app/index.tsx is the initial route. Route groups isolate unauthenticated and student experiences:
• app/_layout.tsx
• app/(authentication)/_layout.tsx
• app/(student)/_layout.tsx
Authentication routes cover onboarding, login, registration, email verification, and password recovery. The only domain-facing role route currently present is app/(student)/home.tsx.
Authentication Feature Vertical
Authentication is the most developed vertical slice. Route files delegate presentation to reusable auth screen components, while validation and remote operations are separated from UI:
• components/authentication/LoginScreen.tsx
• features/auth/schemas/loginSchema.ts
• services/authService.ts
The flow is email/password oriented: registration/login invoke the auth service, Supabase errors are translated for display, and recovery/reset/verification are modeled as distinct screens and Zod schemas. User data is normalized at the integration boundary in utils/mapSupabaseUser.ts.
State, Session, and Provider Boundary
App-wide concerns are intended to be composed through providers. AuthProvider owns session/auth-context lifecycle; the Zustand store supplies client-side auth state; QueryProvider establishes the server-state boundary for future data fetching:
• providers/AuthProvider.tsx
• store/authStore.ts
• providers/QueryProvider.tsx
Role-aware routing is implied by shared role definitions and separate route groups, but only student navigation exists today. Roles are represented centrally rather than embedded in screens: constants/roles.ts, types/role.ts.
Backend and External Integration
Supabase is the active external backend integration, expected to provide authentication and PostgreSQL-backed application data. Its client configuration and environment access are isolated from UI:
• lib/supabase.ts
• config/env.ts
• .env.example
The repository reserves database/ for future Drizzle schema, migrations, and seeds, but no database model files are currently present. Web cryptography compatibility is isolated in lib/webCryptoPolyfill.ts, an important runtime boundary for Supabase/auth behavior across Expo targets.
UI System and Cross-Platform Runtime
The client targets Android, iOS, and web through Expo. UI is intended to use NativeWind plus centralized theme tokens, with auth components constituting the current shared visual system:
• global.css
• theme/index.ts
• tailwind.config.js
Brand and authentication artwork are kept under assets/images/Branding and assets/images/Authentication. app.json is the Expo application/runtime configuration; metro.config.js and babel.config.js support bundling and transforms.
Intended Future Workflow Boundaries
The documented architecture separates lightweight route/UI layers from hooks/state, service-layer business operations, and integrations. Future event, payment, QR, notification, certificate, analytics, and admin capabilities should become feature-scoped modules and call services rather than access Supabase directly. Expected external capabilities include Expo Camera, Notifications, and pdf-lib, but these are roadmap dependencies rather than established repository components.
Main entry points: _layout.tsx Root layout · LoginScreen.tsx Auth screens · AuthProvider.tsx Auth provider · supabase.ts Supabase client
Components 19
App navigation
- Root layout · Composes app-wide routing and providers.
app/_layout.tsx - Initial route
app/index.tsx - Authentication routes · Onboarding, login, registration, verification, and recovery.
app/(authentication)/_layout.tsx - Student routes
app/(student)/_layout.tsx - Student home · Only implemented domain-facing role route.
app/(student)/home.tsx
Authentication
- Auth screens
components/authentication/LoginScreen.tsx - Login validation · Other auth flows also have dedicated schemas.
features/auth/schemas/loginSchema.ts - Auth service · Performs email/password auth and translates backend errors.
services/authService.ts - Auth provider · Owns auth context and session lifecycle.
providers/AuthProvider.tsx - Auth store
store/authStore.ts - Role definitions · Supports role-aware route boundaries.
constants/roles.ts
Platform integration
- Expo runtime · Targets Android, iOS, and web.
app.json - Query provider · Prepared for future remote data fetching.
providers/QueryProvider.tsx - Supabase client · Authentication and planned PostgreSQL application data boundary.
lib/supabase.ts - Supabase user mapper · Normalizes backend users for the client.
utils/mapSupabaseUser.ts - Web crypto polyfill · Ensures Supabase/auth compatibility across Expo targets.
lib/webCryptoPolyfill.ts
UI system
- Theme and NativeWind · Centralized tokens and cross-platform styling.
theme/index.ts - Auth artwork
assets/images/Authentication
Other components
- Future symposium workflows · Events, payments, QR, certificates, notifications, analytics, and admin remain unimplemented.
Connections 20
- Expo runtime → Root layout: runs
- Root layout → Initial route: starts at
- Root layout → Authentication routes: mounts
- Root layout → Student routes: mounts
- Student routes → Student home: contains
- Root layout → Auth provider: provides
- Root layout → Query provider: provides
- Authentication routes → Auth screens: renders
- Auth screens → Login validation: validates with
- Auth screens → Auth service: invokes
- Auth screens → Auth artwork: uses
- Auth screens → Theme and NativeWind: styles with
- Auth service → Supabase client: authenticates via
- Supabase client → Supabase user mapper: returns users for
- Auth provider → Auth store: synchronizes
- Auth provider → Auth service: uses
- Auth provider → Role definitions: applies
- Web crypto polyfill → Supabase client: supports runtime
- Future symposium workflows → Query provider: will fetch through
- Future symposium workflows → Supabase client: will access through services