Skip to content
Β 
Β 

Latest commit

Β 

History

429 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Attendance IO

A modern, feature-rich attendance tracking application for students. Track your daily attendance, manage your timetable, analyze your attendance trends, and stay on top of your academic performance.

Attendance IO

πŸš€ Features

πŸ“… Daily Attendance Tracking

  • One-tap attendance marking - Mark present, absent, or cancelled classes with a single tap
  • Real-time sync - Automatic synchronization with official institute records
  • Smart timetable - Auto-generated timetable based on your subject schedule
  • Future date support - Mark cancelled classes for future dates

πŸ“Š Analytics & Insights

  • Comprehensive analytics - View attendance statistics across semesters
  • Visual charts - Interactive charts showing attendance distribution and trends
  • Semester-wise breakdown - Analyze performance by semester
  • Attendance ranges - See how many students fall in different attendance percentage ranges

πŸ” Search & Discovery

  • Search students - Find any student by name or roll number
  • Cross-semester view - View attendance history across all semesters
  • Quick access - Fast and efficient search with real-time results

⏰ Smart Notifications

  • Sleep reminders - Get smart sleep notifications based on your first lecture
  • Priority alerts - Critical lectures get priority notifications
  • Customizable settings - Configure sleep duration and notification preferences

πŸ“‹ Timetable Management

  • Visual timetable - Beautiful grid view of your weekly schedule
  • Subject assignment - Easily assign subjects to time slots
  • Color coding - Each subject has a unique color for easy identification
  • Flexible editing - Add, remove, or modify your timetable anytime

⚠️ Smart Warnings

  • Minimum criteria alerts - Set minimum attendance thresholds per subject
  • Risk notifications - Get alerts when you're at risk of falling below requirements
  • Visual indicators - Color-coded warnings for subjects needing attention

πŸ’¬ Feedback System

  • Submit feedback - Report bugs, provide feedback, or suggest improvements
  • Multiple types - Categorize feedback as bug, feedback, or suggestion
  • Easy submission - Simple form-based feedback submission

πŸ› οΈ Tech Stack

  • React 18 - Modern React with hooks
  • TypeScript - Type-safe development
  • Vite - Fast build tool and dev server
  • Capacitor - Cross-platform mobile app framework
  • Tailwind CSS - Utility-first CSS framework
  • Shadcn UI - Beautiful, accessible component library
  • React Router - Client-side routing
  • Recharts - Chart library for analytics
  • TanStack Query - Data fetching and caching
  • Sonner - Toast notifications
  • Capacitor Android - Native Android integration
  • Gradle - Android build system

πŸ“¦ Installation

Prerequisites

  • Node.js 18+ and npm
  • Android Studio (for Android development)

Frontend Setup

  1. Clone the repository

    git clone <repository-url>
    cd attendance-io-frontend
  2. Install dependencies

    npm install
  3. Configure environment variables (Optional) The app uses https://api.attendanceio.paramsavjani.in as the default API URL. For local development, create a .env file in the root directory:

    VITE_API_BASE_URL=http://localhost:8081
  4. Run development server

    npm run dev
  5. Build for production

    npm run build

Android Setup

  1. Sync Capacitor

    npm run cap:sync
  2. Open Android Studio

    npm run cap:open:android
  3. Build APK

    • Open the project in Android Studio
    • Build β†’ Build Bundle(s) / APK(s) β†’ Build APK(s)
    • Or use the GitHub Actions workflow for automated builds

πŸš€ Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run build:dev - Build in development mode
  • npm run preview - Preview production build
  • npm run lint - Run ESLint
  • npm run cap:sync - Sync Capacitor native projects
  • npm run cap:copy - Copy web assets to native projects
  • npm run cap:open:android - Open Android project in Android Studio
  • npm run android:build - Build and sync Android project

Project Structure

attendance-io-frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/       # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ attendance/   # Attendance-related components
β”‚   β”‚   β”œβ”€β”€ auth/         # Authentication components
β”‚   β”‚   β”œβ”€β”€ subjects/     # Subject management components
β”‚   β”‚   β”œβ”€β”€ timetable/    # Timetable components
β”‚   β”‚   └── ui/           # Base UI components (Shadcn)
β”‚   β”œβ”€β”€ contexts/         # React contexts (Auth, Attendance)
β”‚   β”œβ”€β”€ hooks/            # Custom React hooks
β”‚   β”œβ”€β”€ lib/              # Utility functions and API config
β”‚   β”œβ”€β”€ pages/            # Page components
β”‚   β”‚   β”œβ”€β”€ Dashboard.tsx
β”‚   β”‚   β”œβ”€β”€ Attendance.tsx
β”‚   β”‚   β”œβ”€β”€ DailyAttendance.tsx
β”‚   β”‚   β”œβ”€β”€ Analytics.tsx
β”‚   β”‚   β”œβ”€β”€ Timetable.tsx
β”‚   β”‚   β”œβ”€β”€ Profile.tsx
β”‚   β”‚   β”œβ”€β”€ Search.tsx
β”‚   β”‚   └── ...
β”‚   └── types/            # TypeScript type definitions
β”œβ”€β”€ android/              # Android native project
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ scripts/             # Build and utility scripts
└── resources/           # App icons and logos

πŸ” Authentication

The app uses OAuth2 authentication. Users authenticate through their institute's OAuth provider and are automatically registered/logged in. The authentication is handled by the backend API.

πŸ“± Mobile App

Building Android APK

The Android APK is automatically built and released via GitHub Actions when changes are pushed to the main branch.

Manual Build:

  1. Ensure you have Android Studio installed
  2. Run npm run build to build the web app
  3. Run npm run cap:sync to sync with native projects
  4. Open Android Studio and build the APK

Automated Build:

  • Push to main branch triggers GitHub Actions workflow
  • APK is automatically built and released
  • Version is automatically incremented based on Git tags

APK Naming

APKs are named: AttendanceIo-{version}-{buildType}.apk

Example: AttendanceIo-1.0.0-release.apk

🎨 UI/UX Features

  • Dark theme - Beautiful dark mode interface
  • Responsive design - Works on all screen sizes
  • Smooth animations - Polished transitions and interactions
  • Accessibility - Built with accessibility in mind
  • Modern design - Clean, minimalist interface

πŸ“Š Performance Optimizations

  • Lazy loading - Components loaded on demand
  • Code splitting - Optimized bundle sizes
  • React Query caching - Efficient data fetching and caching
  • Optimized re-renders - Memoization and context optimization

πŸ§ͺ Testing

# Run linter
npm run lint

# Type checking (via TypeScript)
npm run build

πŸ“ Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is private and proprietary.

πŸ“ž Support

For issues, questions, or feedback, please use the in-app feedback feature or contact the development team.


Made with ❀️ for students

Author: Param Savjani

Releases

Packages

Contributors

Languages