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.
- 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.
-
Dashboard 
-
Clone the repo
git clone https://github.com/akshansh029/study-scheduler.git cd study-scheduler -
Install dependencies
npm install
-
Configure environment variables Create a .env.local file in the project root with the variables listed below.
-
Run database migrations & generate client
npm run db:generate
-
Start the development server
npm run dev
-
Build & preview
npm run build npm run preview
├── .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_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.
-
Fork the repository
-
Create a feature branch (git checkout -b feat/YourFeature)
-
Commit your changes (git commit -m 'Add some feature')
-
Push to your branch (git push origin feat/YourFeature)
-
Open a Pull Request detailing your changes
Please adhere to the existing code style and include tests where applicable.







