Skip to content

Repository files navigation

StudyOS

An AI-assisted academic workspace for managing courses, schedules, materials, assessments, grades, and semester planning.

CI

Some AI functionality requires Anthropic API access. The public deployment intentionally does not expose an active API key to avoid uncontrolled usage costs. The integrations are implemented in the repository and can be enabled with the required server-side configuration.

Product preview

Explore the current product through the live application.

Schedule and calendar Assignment tracking
StudyOS weekly schedule with course filters and calendar events StudyOS assignment dashboard with progress and course filters
Course workspace Quiz generation
StudyOS course workspace with exams and mock-exam controls StudyOS quiz generator with course and difficulty controls

What StudyOS does

  • Organizes courses, assignments, exams, schedules, grades, and graduation plans
  • Presents upcoming work and academic progress in a focused dashboard
  • Supports weekly and monthly calendars, study events, and academic-date imports
  • Parses syllabi and schedule screenshots into reviewable academic data
  • Stores course materials for user-scoped extraction and study workflows
  • Generates course-grounded quizzes and practice exams and supports contextual tutoring
  • Provides responsive navigation and explicit loading, error, empty, and success states

Engineering highlights

  • Migrated the original Vite and React Router SPA to the Next.js App Router
  • Built Supabase authentication, Postgres, Storage, migrations, and Row Level Security-backed data flows
  • Implemented and validated six Deno-based Supabase Edge Functions
  • Hardened authenticated parsing, user-owned material access, and external academic-calendar retrieval
  • Added HTTPS-only URL handling, DNS/private-address checks, redirect validation, timeouts, and response limits
  • Added quiz usage controls, file/input validation, and safer client-facing errors
  • Replaced placeholder tests with focused coverage and added GitHub Actions CI
  • Standardized package management on npm and removed obsolete scaffold dependencies
  • Improved responsive behavior, keyboard accessibility, route states, and mobile calendar usability
  • Deployed the application and branch preview environments with Vercel

Architecture

The Next.js application runs on Vercel and communicates with Supabase for authenticated data and file storage. Privileged validation, file processing, external URL retrieval, and Anthropic requests run in Supabase Edge Functions.

Layer Implementation
Web application Next.js App Router, React, TypeScript
UI and client state Tailwind CSS, shadcn/ui, Radix UI, TanStack Query, Framer Motion
Authentication and data Supabase Auth and Postgres with Row Level Security
File storage Supabase Storage with user-scoped paths and policies
Server workflows Six Deno-based Supabase Edge Functions
AI integration Anthropic Messages API, called from Edge Functions
Delivery Vercel and GitHub Actions

Tech stack

Frontend: Next.js 15, React 18, TypeScript, Tailwind CSS, shadcn/ui, Radix UI, TanStack Query, Recharts, Framer Motion

Backend: Supabase Auth, Postgres, Row Level Security, Storage, SQL migrations, Edge Functions, Deno

Quality and delivery: Vitest, Testing Library, ESLint, TypeScript, npm, GitHub Actions, Vercel

Project evolution and AI-assisted development

StudyOS started as a Lovable prototype for quickly validating the product idea. I then used it as a sandbox for experimenting with AI-assisted development workflows and progressively took ownership of the architecture, security, testing, backend integration, and UX.

The project evolved through a Vite-to-Next.js migration, deeper Supabase integration, authentication and Edge Function hardening, automated testing, CI, dependency cleanup, and accessibility and responsive-UX improvements.

Testing and CI

The repository includes 17 focused tests covering authentication guards, quiz-generation quotas, academic-calendar validation, schedule/date normalization, local-date behavior, and shared helpers. Tests do not make live Anthropic calls.

GitHub Actions runs on pull requests and pushes to main, performing a clean install, application typecheck, lint, tests, production build, and Deno typechecking for all six Edge Functions.

Local development

Requires Node.js 20+, npm, and a Supabase project.

git clone https://github.com/WaseemGhanem98/StudyOS.git
cd StudyOS
npm ci
cp .env.example .env.local
npm run dev

Then open http://localhost:3000. Google sign-in requires a configured provider and matching redirect URL in Supabase Auth.

Environment variables

See .env.example for safe placeholders.

Variable Scope Purpose
NEXT_PUBLIC_SUPABASE_URL Public/client-safe Supabase project URL
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY Public/client-safe Browser-accessible project key
NEXT_PUBLIC_SUPABASE_ANON_KEY Public/client-safe Optional compatibility alias
ANTHROPIC_API_KEY Server-side secret Enables supported AI-backed Edge Functions

Secrets such as ANTHROPIC_API_KEY and SUPABASE_SERVICE_ROLE_KEY must never use a NEXT_PUBLIC_ prefix or be committed.

License

StudyOS is available under the MIT License.

Demo limitations and roadmap

The public deployment is intended as a portfolio showcase. Anthropic-backed workflows are disabled to control API costs, while their implementation remains available in the repository. Some experimental features remain under active development.

Releases

Packages

Contributors

Languages