Track your university attendance from any ERP portal. Know which classes you can safely skip.
- Attendance Dashboard β Subject-wise breakdown with color-coded status (safe / critical / low)
- Smart Skip Calculator β See how many classes you can skip per subject and still meet your threshold
- Next Class Projections β Instantly see what your percentage becomes if you attend or skip
- Weekly Timetable β Set up your schedule manually or scan your timetable image
- Today's Classes β Daily view with skip/attend/risky verdicts for each class
- Week at a Glance β Dot-based overview of the entire week's attendance health
- Per-Subject Thresholds β Set custom minimum attendance for individual subjects
- Dark Mode β Full dark theme with proper contrast across all components
- Cloud Sync β Firebase-backed data persistence across devices
- Secure Credentials β ERP passwords encrypted client-side with AES-GCM before storage
- Auto Refresh β Stale attendance data refreshes automatically on app launch
- Framework β React Native with Expo 54
- Language β TypeScript
- Auth & Database β Firebase Authentication + Cloud Firestore
- Payments β Razorpay (Rs 19/month premium)
- Crypto β react-native-quick-crypto (AES-GCM encryption)
- Image Parsing β AI-powered timetable extraction from photos
| Feature | Free | Premium |
|---|---|---|
| Dashboard & analytics | Yes | Yes |
| Global attendance threshold | Yes | Yes |
| Monthly refreshes | 3/month | Unlimited |
| Per-subject thresholds | β | Yes |
| Timetable scan & setup | β | Yes |
New users get a 7-day trial with unlimited refreshes.
βββ App.tsx # Root component, state management, navigation
βββ components/
β βββ LoginScreen.tsx # Auth + ERP credential forms
β βββ Header.tsx # App header with hamburger menu
β βββ DashboardScreen.tsx # Main dashboard layout
β βββ StudentInfoCard.tsx # Student name, USN, last updated
β βββ OverallStatsCard.tsx # Aggregate stats + projections
β βββ StatusFilter.tsx # Filter by attendance status
β βββ AttendanceCard.tsx # Per-subject card with threshold editor
β βββ TodayCard.tsx # Today's classes with verdicts
β βββ WeekOverview.tsx # Week-at-a-glance dot grid
β βββ ThresholdModal.tsx # Global threshold picker
β βββ TimetableSetup.tsx # Manual + scan timetable setup
β βββ UpgradeModal.tsx # Premium plan comparison + payment
β βββ PremiumGate.tsx # Blur overlay for locked features
β βββ PremiumBadge.tsx # PRO/Upgrade badge
β βββ ErrorToast.tsx # Auto-dismissing error toast
β βββ LoadingScreen.tsx # Splash/loading screen
βββ contexts/
β βββ ThemeContext.tsx # Dark/light theme with AsyncStorage
βββ lib/
β βββ api.ts # Backend API calls
β βββ firebase.ts # Firebase config & initialization
β βββ firestore.ts # Firestore read/write helpers
β βββ crypto.ts # AES-GCM encrypt/decrypt
β βββ razorpay.ts # Razorpay checkout wrapper
β βββ useAuth.ts # Firebase auth hook
β βββ usePremium.ts # Premium status computation
β βββ utils.ts # Status calculations, color utilities
β βββ types.ts # TypeScript interfaces
βββ assets/
βββ logo.png # App logo (light mode)
βββ logo-dark.png # App logo (dark mode)
- Node.js 18+
- Expo CLI (
npm install -g expo-cli) - Android Studio (for Android) or Xcode (for iOS)
# Clone the repo
git clone https://github.com/0xMoni/UniTrack-app.git
cd UniTrack-app
# Install dependencies
npm install
# Start the dev server
npx expo start
# Run on Android
npx expo run:android
# Run on iOS
npx expo run:iosThe app requires Firebase and backend API configuration in lib/config.ts and lib/firebase.ts.
MIT