Skip to content

Repository files navigation

StudyFlow

StudyFlow is a local-first study planner for a first-year student portfolio. It helps students keep courses and assignments in one place, see overdue work, and turn incomplete assignments into a transparent weekly plan.

Run locally

npm install
npm run dev

Quality checks:

npm run lint
npm run typecheck
npm test
npm run build

What is included

  • Course management with course code, color, and progress at a glance.
  • Assignment management for title, course, due date, estimated hours, priority, and completion.
  • Dashboard sections for overdue, upcoming, and recently completed work.
  • A responsive weekly planner with adjustable hours per study day.
  • Helpful empty states, accessible labels, native form validation, and an error-safe storage fallback.
  • Local persistence through localStorage; no account, server, analytics, or external API is required.

Architecture

  • src/types.ts defines the domain model.
  • src/data.ts contains the editable starter dataset.
  • src/planner.ts is a pure planning module with no React or browser dependencies.
  • src/storage.ts owns local persistence and malformed-storage fallback.
  • src/App.tsx composes the dashboard, forms, courses, and planner views.
  • src/App.css and src/index.css provide the responsive visual system.

Planner algorithm

The planner makes no hidden predictions. It:

  1. Removes completed assignments and assignments with no remaining hours.
  2. Sorts the rest by priority (high, then medium, then low) and due date.
  3. Walks through the next seven calendar days that are marked available.
  4. Allocates up to the configured hours per day in one-hour blocks, starting at 5 PM.
  5. Writes a plain-language reason on every block, including the course, priority, and urgency.

The current MVP uses a fixed 5 PM start and a maximum of seven planning days. This keeps the rules easy to explain and test. A future version could support custom time windows, breaks, recurring study preferences, and drag-and-drop adjustments.

Screenshots

Screenshot placeholder: add a product screenshot or short recording here when publishing the portfolio project.

Tradeoffs and honest claims

This is a front-end MVP, not a complete student information system. It does not sync between devices, send reminders, authenticate users, connect to course platforms, or guarantee that a schedule matches a student's real calendar. The starter dataset is sample content, not fake analytics: all displayed counts are calculated from current in-browser state. The use of localStorage keeps the demo private and easy to run, while also meaning clearing browser data clears the plan.

About

A practical study planner for organizing courses, assignments, and weekly study sessions.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages