Skip to content

Repository files navigation

Aura — AI-powered study planning for JEE aspirants

Turn your exam goal, syllabus, and real progress into a calm, repeatable daily routine.


What is Aura?

Aura generates a personalised daily study plan grounded in your onboarding data, syllabus coverage, topic progress, confidence levels, and past mistakes. Instead of generic schedules, each day is built from evidence — study sessions, revision slots, and tests appear only when data supports them.

Key Features

  • AI-generated daily plans — Gemini ranks topics by urgency and builds a study/revision/test mix that fits your available time.
  • Onboarding-driven context — Exam year, attempt number, coaching hours, school hours, daily study time, rank aim, and weakest subject shape every plan.
  • Streak tracking — Timezone-aware streak system that rewards consistent effort.
  • Test deadlines & results — Track upcoming tests, record results (percentage or fraction), and see your progress over time.
  • End-of-day reflection — Quick mood and difficulty feedback that informs tomorrow's plan.
  • Wellness-aware planning — Load balancing and cognitive pacing prevent burnout.
  • Dark mode — Full theme support via next-themes.

Tech Stack

Layer Technology
Framework Next.js 16 (App Router, React 19, React Compiler)
API tRPC v11 with TanStack Query
Database PostgreSQL via Neon
ORM Prisma 7 with @prisma/adapter-pg
Auth Better Auth (Google OAuth)
AI Vercel AI SDK + Google Gemini
Styling Tailwind CSS v4 + shadcn/ui
Validation Zod

Prerequisites


Getting Started

1. Clone & install

git clone https://github.com/<your-org>/project-aura.git
cd project-aura
npm install

2. Configure environment

cp .env.example .env

Open .env and fill in your credentials. See .env.example for descriptions of each variable.

3. Set up the database

# Generate the Prisma client
npm run db:generate

# Run migrations
npx prisma migrate deploy

# Seed the syllabus data (chapters & topics)
npm run db:seed

4. Run the dev server

npm run dev

Open http://localhost:3000 to get started.


Project Structure

src/
├── app/                    # Next.js App Router
│   ├── (main)/dashboard/   # Authenticated dashboard
│   ├── onboarding/         # First-time user setup
│   ├── api/                # tRPC + Auth API routes
│   ├── error.tsx           # Global error boundary
│   ├── not-found.tsx       # Custom 404 page
│   └── page.tsx            # Landing page
├── components/
│   ├── ui/                 # shadcn/ui primitives
│   ├── ai-elements/        # AI chat components
│   └── providers/          # Theme, tRPC, etc.
├── features/
│   ├── dashboard/          # Dashboard, planner, stats cards
│   └── onboarding/         # Onboarding flow
├── trpc/
│   ├── routers/            # tRPC routers (planner, onboarding)
│   ├── client.tsx          # Client-side tRPC setup
│   └── server.tsx          # Server-side tRPC + prefetching
├── lib/                    # Auth, Prisma, AI, utilities
└── utils/                  # Planner algorithms, auth helpers
prisma/
├── schema.prisma           # Database schema
├── migrations/             # Migration history
└── seed.ts                 # Syllabus seed data

Scripts

Command Description
npm run dev Start the development server
npm run build Create a production build
npm run start Start the production server
npm run lint Run ESLint
npm run db:seed Seed the database with syllabus data

Deployment

The easiest deployment target is Vercel:

  1. Push the repo to GitHub.
  2. Import the project in Vercel.
  3. Add all environment variables from .env.example in the Vercel dashboard.
  4. Vercel will detect Next.js and deploy automatically.

Note: Set BETTER_AUTH_URL to your production domain (e.g. https://aura.example.com).


License

MIT

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages