Skip to content

dipexplorer/learnsight

Repository files navigation

πŸ“š LearnSight – Adaptive Diagnostic + Targeted Practice

LearnSight is an adaptive learning platform that diagnoses student strengths and weaknesses across four fundamentals β€” Listening, Grasping, Retention, and Application β€” and generates personalized practice plans with real-time progress reports for students, teachers, and parents.


πŸš€ Features (MVP Scope)

  • 🎯 Adaptive Diagnostic Test – 10–15 questions that dynamically adjust difficulty.
  • 🧩 Skill Mapping – Every response is mapped to fundamentals: listening, grasping, retention, and application.
  • πŸ“Š Personalized Reports – Radar charts and simple recommendations for each student.
  • πŸ“ Targeted Practice Queue – Micro-lessons (2–5 problems each) generated for each weak skill.
  • πŸ‘©β€πŸ« Teacher Dashboard – Class overview with exportable reports.
  • πŸ‘¨β€πŸ‘©β€πŸ‘§ Parent Access – A simple view of the student’s progress and support suggestions.

πŸ›  Tech Stack

Frontend

Backend & Infra

Optional AI/ML Layer

  • OpenAI API – For explanations, hints, and micro-lesson generation.

πŸ“‚ Project Structure

learnsight/
app/
    β”œβ”€β”€ api/
        β”œβ”€β”€ auth/
            β”œβ”€β”€ signup/
                └── route.ts
            └── verify/
                └── route.ts
        β”œβ”€β”€ diagnostic/
            β”œβ”€β”€ attempt/
                └── latest/
                    └── route.ts
            β”œβ”€β”€ complete/
                └── route.ts
            β”œβ”€β”€ get-attempt/
                └── route.ts
            β”œβ”€β”€ next-question/
                └── route.ts
            β”œβ”€β”€ start-attempt/
                └── route.ts
            └── submit-answer/
                └── route.ts
        β”œβ”€β”€ paper/
            └── [id]/
                └── route.ts
        β”œβ”€β”€ practice/
            β”œβ”€β”€ generate/
                └── route.ts
            β”œβ”€β”€ session/
                └── [id]/
                    └── route.ts
            └── sessions/
                └── route.ts
        β”œβ”€β”€ questions/
            └── [id]/
                └── route.ts
        β”œβ”€β”€ student/
            └── [id]/
                β”œβ”€β”€ dashboard/
                    └── route.ts
                β”œβ”€β”€ radar/
                    └── route.ts
                β”œβ”€β”€ reports/
                    └── route.ts
                └── update/
                    └── route.ts
        └── teacher/
            └── [id]/
                β”œβ”€β”€ alerts/
                    └── route.ts
                β”œβ”€β”€ dashboard/
                    └── route.ts
                β”œβ”€β”€ reports/
                    └── route.ts
                └── students/
                    └── route.ts
    β”œβ”€β”€ dev-auth/
        └── page.tsx
    β”œβ”€β”€ login/
        β”œβ”€β”€ loading.tsx
        └── page.tsx
    β”œβ”€β”€ parent/
        β”œβ”€β”€ dashboard/
            └── page.tsx
        β”œβ”€β”€ progress/
            └── page.tsx
        └── support/
            └── page.tsx
    β”œβ”€β”€ student/
        β”œβ”€β”€ dashboard/
            └── page.tsx
        β”œβ”€β”€ diagnostic/
            └── page.tsx
        β”œβ”€β”€ practice/
            β”œβ”€β”€ [id]/
                └── page.tsx
            └── page.tsx
        β”œβ”€β”€ profile/
            └── page.tsx
        └── reports/
            └── page.tsx
    β”œβ”€β”€ teacher/
        β”œβ”€β”€ dashboard/
            └── page.tsx
        β”œβ”€β”€ reports/
            └── page.tsx
        └── students/
            β”œβ”€β”€ loading.tsx
            └── page.tsx
    β”œβ”€β”€ globals.css
    β”œβ”€β”€ layout.tsx
    └── page.tsx
components/
    β”œβ”€β”€ layout/
        β”œβ”€β”€ footer.tsx
        └── navbar.tsx
    β”œβ”€β”€ ui/
        β”œβ”€β”€ badge.tsx
        β”œβ”€β”€ button.tsx
        β”œβ”€β”€ card.tsx
        β”œβ”€β”€ input.tsx
        β”œβ”€β”€ label.tsx
        β”œβ”€β”€ loader.tsx
        β”œβ”€β”€ progress.tsx
        β”œβ”€β”€ radio-group.tsx
        β”œβ”€β”€ select.tsx
        β”œβ”€β”€ sheet.tsx
        β”œβ”€β”€ table.tsx
        β”œβ”€β”€ tabs.tsx
        └── textarea.tsx
    β”œβ”€β”€ auth-guard.tsx
    β”œβ”€β”€ dashboard-layout.tsx
    β”œβ”€β”€ practice-card.tsx
    └── radar-chart.tsx
contexts/
    └── user-context.tsx
lib/
    β”œβ”€β”€ auth-context.tsx
    β”œβ”€β”€ auth.ts
    β”œβ”€β”€ auth.ts.new
    β”œβ”€β”€ db-admin.ts
    β”œβ”€β”€ firebase-admin.ts
    β”œβ”€β”€ firebase.ts
    β”œβ”€β”€ teacher-service-client-part2.ts
    β”œβ”€β”€ teacher-service-client.ts
    β”œβ”€β”€ teacher-service.ts
    └── utils.ts
scripts/
    β”œβ”€β”€ create-demo-users.js
    └── seed-demo.ts
types/
    β”œβ”€β”€ index.ts
    └── teacher.ts
utils/
    β”œβ”€β”€ adaptive.ts
    β”œβ”€β”€ practice.ts
    └── scoring.ts
.eslintrc.json
.gitignore
components.json
eslint.config.mjs
firestore.indexes.json
firestore.rules
next.config.ts
package-lock.json
package.json
postcss.config.mjs
README.md
tsconfig.json

⚑ Getting Started (Local Development)

  1. Clone the repository

    git clone https://github.com/dipexplorer/learnsight.git
    cd learnsight
  2. Install dependencies

    npm install
  3. Set up environment variables Create a .env.local file in the root directory and add your credentials:

    NEXT_PUBLIC_FIREBASE_API_KEY=your_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
    NEXT_PUBLIC_FIREBASE_APP_ID=
    NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
    
    FIREBASE_PROJECT_ID=
    FIREBASE_CLIENT_EMAIL=
    FIREBASE_PRIVATE_KEY=
  4. Run the development server

    npm run dev

    Open http://localhost:3000 in your browser. πŸš€


🎬 Demo Flow (Hackathon)

Student login β†’ Adaptive Diagnostic β†’ Radar Report β†’ Personalized Practice Plan generated live.

Teacher Dashboard: Compare students (e.g., Ram, Shyam, Sanga).

Parent Dashboard: View simple progress and recommendations.


πŸ— System Architecture

flowchart TD
    A[Student] -->|Diagnostic Test| B[Adaptive Engine]
    B -->|Update Skills| C[(Firestore DB)]
    C --> D[Reports Service]
    D -->|Radar/Insights| E[Student Dashboard]
    D --> F[Teacher Dashboard]
    D --> G[Parent Dashboard]
    B --> H[Practice Generator]
    H -->|Tasks + Micro-lessons| E
    H -->|LLM optional| I[(OpenAI API)]
Loading

πŸ“Š Evaluation Fit

  • Innovation & Creativity (30%) – Adaptive engine combined with AI-powered micro-lessons.
  • Technical Implementation (30%) – Modern stack with Firebase, Next.js, and custom adaptive logic.
  • Relevance (20%) – Directly measures and improves fundamental learning skills.
  • Clarity (20%) – Clean dashboards and a demo-ready user flow.

πŸ‘₯ Team & Credits

Built with ❀️ by [BrainBots] for [Ai for Education].


πŸ“œ License

This project is licensed under the MIT License. You are free to use, modify, and distribute it with attribution.

About

πŸ“˜ LearnSight β€” Adaptive learning system with diagnostic testing and personalized practice generation, built using Next.js, Firebase, and data-driven logic.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages