Skip to content

GhostClass is the ultimate academic survival tool for students who want to manage their attendance without the main character energy of a professor. Featuring a sleek dashboard with real-time analytics.

License

Notifications You must be signed in to change notification settings

devakesu/GhostClass

 
 

Repository files navigation

GhostClass

Overview

GhostClass is the ultimate academic survival tool for students who want to manage their attendance without the main character energy of a professor. Featuring a sleek dashboard with real-time analytics and visual performance charts, it helps you track your classes so you never accidentally ghost your degree. With a built-in "bunk calculator" to tell you exactly how many lectures you can skip before it becomes a canon event, and a dedicated tracker for suspicious absences, GhostClass ensures your attendance stays valid while you live your best life. Built as a better alternative to Ezygo, it presents your attendance data with a clean, intuitive interface. No more confusing numbers - just clear, actionable insights!


🎯 Key "Vibe" Features

  • The Bunk Calc 🧮: Know exactly how many classes you can miss before the threshold comes for your neck.
  • Visual Reciepts 📊: Performance charts and a detailed calendar history so you can see your attendance glow-up in real-time.
  • Anti-Ghosting Tracker 👻: A personalized list to watch wrongly marked absences like a hawk until they get updated.
  • Ezygo Integration 🔄 - Use your existing ezygo credentials - no new accounts needed
  • Real-time Updates ⚡ - Get instant updates on your attendance status and skip calculations
  • Track Status Changes 📝 – Get notified when your attendance is updated
  • Mobile Friendly 📱 - Access your attendance data on any device, anywhere

🛠️ Tech Stack

  • Frontend - Next.js with React
  • Styling - Tailwind CSS for a modern, responsive design
  • UI Components - Radix UI & Shadcn for accessible, consistent components
  • Data Visualization - Recharts for beautiful attendance graphs
  • Animations - Framer Motion for smooth transitions
  • Database & Auth - Supabase (PostgreSQL)
  • Monitoring - Sentry & Google Analytics

📁 Project Structure

src/
├── app/                # Next.js app router pages and layouts
│   ├── (auth)/         # Authentication-related routes
│   ├── (protected)/    # Login restricted routes
|   ├── (public)/       # Public routes
|   ├── actions/        # User actions
|   ├── api/            # APIs
|   ├── config/         # App configs
│   ├── globals.css     # Global styles
│   └── layout.tsx      # Root layout
├── components/         # Reusable React components
├── providers/          # React context providers
├── utils/              # Utility functions
├── assets/             # Static assets
├── types/              # TypeScript type definitions
├── lib/                # Core library code
|   ├── logic/          # Attendance & Bunk Logic
|   ├── supabase/       # Supabase Backend Control
└── hooks/              # Custom React hooks
└── supabase/           # DB Backend Schema

🧮 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)

Original implementation available here: bunk.ts


🚀 Getting Started

Prerequisites

  • Node.js (Latest LTS version recommended)
  • npm or yarn
  • Docker Desktop (Only for local development - supabase)
  • Supabase CLI (npm install supabase --save-dev)

Quick Start

  1. Clone the Repository

    git clone https://github.com/devakesu/GhostClass.git
  2. Navigate to Project Directory

    cd GhostClass
  3. Install Dependencies

    npm install
    # or
    yarn install
  4. Go to Supabase.com and create a new project.

    Login & Link:

    npx supabase login
    npx supabase link --project-ref <your-new-project-id>

    Create Database Tables: push the schema from this repo to your new remote database:

    npx supabase db push

    (This creates all tables, policies, and triggers defined in supabase/migrations)

  5. Copy the example environment file

    cp .env.example .env
    

    Open .env and populate the keys.

  6. Start Development Server

    npm run dev
    # or
    yarn dev

The application will be available at http://localhost:3000 🎉


🤝 Contributing

We welcome contributions! Here's how you can help:

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

👥 This build maintained by

Earlier version developed by:


📧 Contact

For any questions, feel free to reach out to me via email at fusion@devakesu.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 GhostClass! Bunk classes & enjoy, but don't forgot to study!! 😝🤝

About

GhostClass is the ultimate academic survival tool for students who want to manage their attendance without the main character energy of a professor. Featuring a sleek dashboard with real-time analytics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • TypeScript 94.2%
  • PLpgSQL 3.3%
  • Dockerfile 1.2%
  • CSS 1.2%
  • JavaScript 0.1%