Skip to content

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Preview

Task Reminder

PHP Laravel React Vite Tailwind License

A college assignment reminder app with task, GPA, and schedule tracking, Siakang sync, and notifications.

Features

  • Task management with priority flags and due-date tracking
  • Course content CRUD with Excel import and template download
  • Weekly schedule with overlap detection and multi-week navigation
  • Monthly task calendar with status badges and overdue highlighting
  • Dashboard analytics with bar chart and semester overview
  • Assessment and GPA tracking per semester and cumulative
  • Custom grade scale management
  • Siakang sync for grades and schedules via siakang-scrapling
  • Notification channels: email, telegram, or both with test button
  • Queued email delivery and Telegram MarkdownV2 formatting
  • User settings for profile, password, and notification preferences
  • Theme support: light, dark, and system
  • Responsive design for mobile, tablet, and desktop
  • Sanctum SPA auth with email verification and password reset

Tech Stack

  • Frontend: React 19, Vite 8, Tailwind 4, shadcn/ui, React Router 7, Zustand, Chart.js
  • Backend: Laravel 13 (PHP 8.3), Sanctum, Octane, Excel 4.0, Pest 5
  • Bridge: Python 3.11 + uv + siakang-scrapling

Setup

Prerequisites: PHP 8.3+, Composer, Node 20+, pnpm 11+, Python 3.11 + uv, MySQL

# Backend
cd server
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
cd siakang-sync && uv sync && cd ..

# Frontend
cd client
pnpm install

Key env: DB_DATABASE, QUEUE_CONNECTION=database, FRONTEND_URL, TELEGRAM_BOT_TOKEN (see .env.example)

Run Dev

# Terminal 1 — API :8000 + queue + logs
cd server && composer run dev

# Terminal 2 — SPA :5173
cd client && pnpm dev

Commands

cd server && php artisan test                    # 218 tests (Feature + Unit)
cd server && php artisan test --testsuite=Feature
cd server && php artisan test --testsuite=Unit
cd server && php artisan queue:listen --tries=1
cd server && php artisan notifications:reminder
cd server && ./vendor/bin/pint
cd client && pnpm lint && pnpm build
cd client && pnpm test                           # 97 tests Vitest + jsdom + Testing Library

Siakang Sync

  1. Settings → Siakang → enter Siakang email and password (encrypted, validated first)
  2. Open Assessments or Course Contents → Sync from Siakang → pick a Siakang semester
  3. Data is imported into the semester currently viewed in the app

About

A college assignment reminder app with task, GPA, and schedule tracking, Siakang sync, and notifications.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Used by

Contributors

Languages