Skip to content

Caroluspalin/AbsenceCalculator

Repository files navigation

Student Schedule & Absence Manager

Project Status License Tech Stack

📖 Overview

This application is a comprehensive resource management tool designed for university students balancing academic responsibilities with part-time employment.

Unlike traditional calendar apps, this tool specifically focuses on opportunity cost analysis. It allows users to track mandatory course attendance against work shifts, providing real-time data on absence limits and potential earnings. The goal is to facilitate strategic planning for better work-life balance.

✨ Key Features

1. Weekly Schedule & Financial Planning

The dashboard features a dynamic weekly planner that integrates academic schedules with work shifts.

  • Conflict Management: Visualizes school vs. work hours to prevent overlaps.
  • Income Estimation: Automatically calculates projected earnings based on scheduled work shifts and hourly wage settings.
  • Shift Management: Add recurring work shifts or single events with ease.
Screenshot 2026-01-23 at 20 50 09

2. Course Attendance Tracking

A dual-progress tracking system ensures students meet attendance requirements without losing track of overall course completion.

  • Absence Monitoring: Visualizes used absences against the course's maximum allowance (warning limits included).
  • Completion Tracking: A separate progress bar tracks actual participation and course progression.
  • Status Indicators: Color-coded alerts (Green/Yellow/Red) indicate the risk level of failing a course due to non-attendance.
Screenshot 2026-01-23 at 20 51 04

🛠️ Tech Stack

This project leverages a modern, type-safe web development stack:

  • Frontend: React (via Vite)
  • Language: TypeScript for robust type safety.
  • State Management & Logic: React Hooks, date-fns for complex date manipulation.
  • Styling: Tailwind CSS with a custom modern dark theme.
  • Animations: Framer Motion for smooth UI transitions.
  • Backend / Database: Supabase (PostgreSQL) for real-time data persistence.
  • Icons: Lucide React.

🚀 Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • A Supabase account

Installation

  1. Clone the repository

    git clone [https://github.com/yourusername/student-schedule-manager.git](https://github.com/yourusername/student-schedule-manager.git)
    cd student-schedule-manager
  2. Install dependencies

    npm install
  3. Environment Configuration Create a .env file in the root directory and add your Supabase API keys:

    VITE_SUPABASE_URL=your_supabase_url_here
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key_here
  4. Run the development server

    npm run dev

🗄️ Database Schema

To replicate the backend infrastructure, run the following SQL commands in the Supabase SQL Editor:

-- 1. Courses Table: Stores course details and attendance records
create table courses (
  id uuid default uuid_generate_v4() primary key,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null,
  name text,
  total_lessons numeric,
  skipped_lessons numeric default 0,
  attended_lessons numeric default 0,
  max_absences numeric default 5,
  lesson_duration numeric default 1.5,
  earned_money numeric default 0,
  end_date date
);

-- 2. Calendar Events Table: Stores work shifts and school events
create table calendar_events (
  id uuid default uuid_generate_v4() primary key,
  created_at timestamp with time zone default timezone('utc'::text, now()) not null,
  title text,
  type text, -- 'school' or 'work'
  start_time timestamp with time zone,
  end_time timestamp with time zone,
  earnings numeric default 0,
  course_id uuid references courses(id) on delete cascade
);

About

A strategic resource planning tool for students balancing full-time studies with part-time work. Features opportunity cost analysis, real-time absence tracking, and financial forecasting.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors