Skip to content

itsantonle/Local_Storage_Scheduler

Repository files navigation

🗓️ Local Storage Scheduler

image

Next.js React TypeScript Tailwind CSS shadcn/ui

Privacy‑first, offline‑capable schedule management app for students.
Built with Next.js + React + TailwindCSS + shadcn/ui.
100% client‑side, no accounts, no tracking, manage date via JSON.


📔 Table of Contents


📖 Overview

Click to expand

Local Storage Scheduler is a privacy‑first, offline‑capable schedule management application designed for students.
All data is stored in the browser’s localStorage.

Philosophy:

  • 🔒 Your data, your control
  • ⚠️ Conflict‑first design
  • ♿ Accessibility‑focused
  • 📤 Export freedom (JSON import/export)

🧩 Core Concepts

Click to expand

Subjects

  • Name, Stub Code, Color, Default Teacher, Default Room

    image

Schedule Tables

  • Name, Creation date, Last updated, Collection of time slots

    image

Time Slots

  • Day, Start/End time, Subject, Room, Teacher, Notes

    image

📂 Data Management

Click to expand image image
  • Import Data: Upload JSON, validate, confirm overwrite
  • Export Data: Download JSON backup (scheduler-data-YYYY-MM-DD.json)
  • Clear All Data: Wipe everything with confirmation

📚 Subject Management

Click to expand image
  • Create, Edit, Delete subjects
  • Color palette (orange, teal, purple, pink)
  • Subject cards show name, stub, teacher, room

📅 Schedule Table Management

Click to expand image
  • Create new schedules (semester, quarter, session)
  • Switch via dropdown
  • Edit names, delete schedules (with confirmation)

⏰ Time Slot Management

Click to expand image
  • Grid layout: Time (vertical), Days (horizontal)
  • Add/Edit/Delete slots with validation
  • Conflicts checked automatically

⚠️ Conflict Detection

Click to expand image
  • Overlaps on same day = conflict
  • Visual indicators: red background, warning icon
  • Conflict counter at top
  • Workflow: edit times/days to resolve

📝 Text Generation & Export

Click to expand image
  • Detailed Format (multi‑line)
  • Inline Format (compact)
  • Options: toggle room/teacher/codes/notes, time format, spacing
  • Actions: Copy to clipboard, Download .txt
  • Live preview

♿ Accessibility Features

Click to expand image
  • Font size adjustment (small → extra large)
  • High contrast mode (WCAG AAA)
  • Reduced motion (no animations)
  • Screen reader support (ARIA, semantic HTML, NVDA/JAWS/VoiceOver tested)

⌨️ Keyboard Shortcuts

Click to expand
Shortcut Action
Alt+1 Schedule tab
Alt+2 Subjects tab
Alt+3 Guide tab
Alt+4 Settings tab
Ctrl/⌘+K Keyboard shortcuts dialog
Esc Close dialog
Tab / Shift+Tab Navigate
Enter Activate
Space Toggle

🤝 Contribution

Click to expand

Getting Started

  • Fork the repo, clone, install dependencies, run dev build.
  • Report issues with browser/version, repro steps, screenshots, console errors.
  • Submit feature PR requests with description, use case, mockups.

Technical Details

  • Frameworks: Next.js 16, React 19.2, TypeScript
  • Styling: TailwindCSS v4, shadcn/ui, dark mode orange accent
  • State: Context API + localStorage
  • Libraries: date-fns, lucide-react, sonner
  • Storage: localStorage key scheduler-app-state
  • Components: /components/subjects/*, /components/schedule/*, /components/settings/*
  • Performance: Lazy loading, memoization, debounced writes, virtual scrolling
  • Future Enhancements: Themes, drag‑and‑drop, iCal export, conflict resolution suggestions

License

MIT License — open source, free to use and contribute.


About

📆Local Storage Scheduler v.1 alpha. Manage your schedules without the hassle of sign ups and paywalls, locally via JSON.

Resources

Stars

Watchers

Forks