Skip to content

0xMoni/UniTrack-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UniTrack Mobile

Track your university attendance from any ERP portal. Know which classes you can safely skip.

Web version | Web repo

Features

  • 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

Tech Stack

  • 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

Premium vs Free

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.

Project Structure

β”œβ”€β”€ 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)

Getting Started

Prerequisites

  • Node.js 18+
  • Expo CLI (npm install -g expo-cli)
  • Android Studio (for Android) or Xcode (for iOS)

Setup

# 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:ios

Environment

The app requires Firebase and backend API configuration in lib/config.ts and lib/firebase.ts.

License

MIT

About

App version - cause refreshing your ERP portal 47 times a day wasn't cutting it 😚

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors