Skip to content

SlotWise is a modern study scheduling and review application that helps students plan, track, and review their study sessions with spaced-repetition flashcards, smart scheduling and progress analytics.

Notifications You must be signed in to change notification settings

Akshansh029/study-scheduler

Repository files navigation

SlotWise

SlotWise is a modern study scheduling and review application that helps students plan, track, and review their study sessions with spaced-repetition flashcards, smart scheduling and progress analytics. Built with the modern T3-Stack (Next.js App Router + tRPC + Prisma), it delivers an end-to-end type-safe developer experience and a smooth, responsive UI.

Landing page

Tech Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Prisma
  • PostgreSQL
  • tRPC
  • Clerk

Features

  • Subject management: Create and manage all subject and organize different sessions and reviews according to your subjects.
  • Session Scheduling: Create and manage study sessions with a rich calendar view.
  • Flashcards: Organize and review flashcards by subject.
  • Progress Tracking: Log session durations and view stats over time.
  • User Profiles: Sign up, sign in, and manage your profile securely with Clerk.

Screenshots

  • Dashboard ![Dashboard](<public/Dashboard.png)

  • Schedule page Schedule page

  • Subjects page Subjects page

  • Sessions page Sessions page

  • Ongoing session Ongoing session

  • Review page Review page

  • Profile page Profile page


Usage

  1. Clone the repo

    git clone https://github.com/akshansh029/study-scheduler.git
    cd study-scheduler
  2. Install dependencies

    npm install
  3. Configure environment variables Create a .env.local file in the project root with the variables listed below.

  4. Run database migrations & generate client

    npm run db:generate
  5. Start the development server

    npm run dev
  6. Build & preview

    npm run build
    npm run preview

Project Structure

├── .vscode
├── hooks
├── node_modules
│   └── prisma
│       └── engines
├── prisma
├── public
├── scripts
└── src
    ├── app
    │   ├── (protected)
    │   │   └── dashboard
    │   │       ├── flashcards
    │   │       ├── profile
    │   │       ├── review
    │   │       │   └── [subjectId]
    │   │       ├── schedule
    │   │       ├── sessions
    │   │       │   └── [sessionId]
    │   │       └── subjects
    │   ├── api
    │   │   ├── cron
    │   │   │   └── reset-sessions
    │   │   └── trpc
    │   │       └── [trpc]
    │   └── sync-user
    ├── components
    │   └── ui
    ├── hooks
    ├── lib
    ├── server
    │   └── api
    │       └── routers
    ├── styles
    ├── trpc
    └── utils

Database schema

Database schema

Environment Variables

DATABASE_URL="postgresql-database-url"
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="your-clerk-publishable-key"
CLERK_SECRET_KEY="your-clerk-secret-key"
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL='/'
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL='/'
NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL='/sync-user'
NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL='/dashboard'
CRON_SECRET="random-hex-code"

Note: Create a Clerk application at Clerk Dashboard to obtain your keys.

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feat/YourFeature)

  3. Commit your changes (git commit -m 'Add some feature')

  4. Push to your branch (git push origin feat/YourFeature)

  5. Open a Pull Request detailing your changes

Please adhere to the existing code style and include tests where applicable.

About

SlotWise is a modern study scheduling and review application that helps students plan, track, and review their study sessions with spaced-repetition flashcards, smart scheduling and progress analytics.

Resources

Stars

Watchers

Forks