Skip to content

Repository files navigation

Bunkr

Overview

Bunkr is a student-focused attendance tracker that gives you the insights you actually need. Built as a better alternative to Ezygo, it presents your attendance data with a clean, intuitive interface that makes sense to students. No more confusing numbers—just clear, actionable insights.

Also available as a web app: bunkr-web


Features

  • Smart Skip Calculator – Know exactly how many classes you can miss while staying above attendance requirements
  • Better Data Presentation – Clean, user-friendly interface that makes attendance data easy to understand
  • Ezygo Integration – Sign in using your existing Ezygo credentials
  • Real-time Updates – Get instant updates on your attendance status and skip calculations
  • Track Status Changes – Receive notifications when your attendance is updated
  • Cross-Platform – Available on Android, iOS, and Web

Tech Stack

  • Framework – Flutter 3.32 (Dart)
  • Backend & Messaging (Notifications) – Supabase, Firebase
  • UI Components – shadcn, Material, Cupertino

Project Structure

lib/
├── main.dart                # App entry point
├── screens/                 # Main screens
├── services/                # Business logic and integrations
├── models/                  # Data models
├── widgets/                 # Reusable UI components
├── helpers/                 # Utility functions

android/                     # Android-specific code and configs
ios/                         # iOS-specific code and configs
web/                         # Web support files
assets/                      # Fonts and images

API & Environment Setup

Create a .env file in the project root and add your API keys and endpoints.

SUPABASE_URL=
SUPABASE_ANON_KEY=
EZYGO_API_URL=

You will also need to add your Firebase configuration files:

  • google-services.json for Android
  • firebase_options.dart for Flutter

Bunk Algorithm

1. If total <= 0 or present <= 0  return zero

2. current% = (present / total) * 100

3. If current% == target  isExact = true

4. If current% < target:
   required = ceil((target * total - 100 * present) / (100 - target))

5. If current% > target:
   bunkable = floor((100 * present - target * total) / target)

Full implementation available here: bunk.dart


Getting Started

Prerequisites

  • Flutter SDK (3.32 or later)
  • Android Studio or VS Code
  • A physical device or emulator

Quick Start

  1. Clone the Repository

    git clone https://github.com/AsilMehaboob/BUNKR.git
  2. Navigate to the Project Directory

    cd BUNKR
  3. Install Dependencies

    flutter pub get
  4. Create the .env file and add your API keys

  5. Add the Firebase configuration files

  6. Run the Application

    flutter run

The application will run on your Android device, iOS device, or emulator.


Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Open a pull request.

Team


Contact

For questions or feedback, feel free to reach out via email at asilmehaboob@gmail.com.


License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.


Thank you for your interest in Bunkr.

About

A simple, student-only alternative to Ezygo. Built to properly track attendance.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages