Skip to content

Abhijeet17o/planit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

planit — Academic Automation Platform

An integrated academic automation platform with three modules: AI-powered Lesson Plan Generator, Exam Answer Generator, and CO-PO-PSO Attainment Workbook Generator — all in one unified interface.


Modules

1. Lesson Plan Generator

AI-powered agentic system that automatically generates semester lesson plans from academic documents using LangGraph, LiteLLM, and EasyOCR.

Input (3 files):

  • Academic Calendar (Excel) — Semester dates, holidays, exam periods
  • Subject Syllabus (Image/PDF) — Modules, topics, hours allocation
  • Weekly Timetable (Word/PDF) — Teaching days and slots

Output: Styled Excel workbook with lesson plan schedule, summary, and module progress sheets.

Pipeline: 4-node LangGraph StateGraph — Parse Documents → Analyze Constraints → Generate Schedule → Create Excel


2. Exam Answer Generator

Upload a question paper and syllabus to generate detailed answers automatically using LLMs.


3. CO-PO-PSO Attainment Generator

Generates a complete CO-PO-PSO attainment workbook from exam data, lab rubrics, and course exit surveys. Supports selective sheet generation with automatic dependency resolution.

Output workbook (up to 5 sheets):

Sheet Description
Mapping CO-PO-PSO Binary CO×PO matrix, session allotment, mapping strength, and mapped PO/PSO attainment
Summary Attainment Per-CO targets, ESE & ICA attainment, Direct/Indirect/Final attainment, and GAP analysis
ESE Splitup Student-level end semester exam marks with CO-wise averages and % attainment
ICA Splitup Student-level internal assessment marks with CO-wise averages and % attainment
Course Exit Survey response analysis (Likert 1–5) and CO attainment percentages

Sheet dependency graph:

ESE_Splitup ──────┐
ICA_Splitup ──────┼──▶ Summary_Attainment ──▶ Mapping CO-PO-PSO
Course_Exit ──────┘

Users can select any combination of sheets. Dependencies are auto-resolved — selecting Summary automatically requires ESE + ICA + Exit. Leaf sheets (ESE, ICA, Exit) can be generated independently.

Input Files

File Format Description Required For
Questionwise Exam Result .xlsx Student-wise marks for each ESE question. Rows = students, Columns = question marks ESE Splitup
ESE Template .xlsx Maps each question to its CO and max marks ESE Splitup
Oral/Practical Marks .xlsx Optional oral/practical exam marks per student ESE Splitup
Lab Rubrics File .xlsx Workbook with sheets for Experiments, Assignments, and optionally Miniproject & Oral marks ICA Splitup
Term Test File .xlsx Workbook with TT1, TT2, and optionally TT3 sheets ICA Splitup
Word Template (CO Mapping) .docx Table mapping each experiment/assignment to its CO(s) ICA Splitup
Course Exit Survey .xlsx MS Forms export. Each CO is a column, students rate 1–5 (Likert scale) Course Exit
CO Rubrics Document .docx CO descriptions with Bloom's taxonomy levels. Format: CO1: Students will be able to... Summary
PO / PSO Document .docx PO1–PO12 and PSO descriptions. Format: PO1: Engineering Knowledge – Apply... Mapping

Features

  • Selective sheet generation — toggle which sheets to include; dependencies auto-resolved
  • Auto sheet detection — uploaded Excel sheet names are matched to expected fields automatically (single-sheet files auto-select; multi-sheet files fuzzy-match by name)
  • GAP analysis modal — when Summary/Mapping sheets are included, a modal shows per-CO GAP analysis with fields for proposed actions and modified targets
  • CO auto-extraction — uploading the rubrics document auto-extracts all COs for custom target % and session count inputs
  • Info tooltips — every file upload has an (i) icon explaining exactly what that file should contain

Tech Stack

Backend

Component Technology
Framework FastAPI (Python 3.10+)
AI Orchestration LangGraph (StateGraph with human-in-the-loop)
LLM Gateway LiteLLM (auto-fallback between Gemini & Groq)
OCR EasyOCR + Chandra OCR
Excel Processing openpyxl
NLP (CO-PO Mapping) scikit-learn TF-IDF + position-based templates

Frontend

Component Technology
Framework Next.js 16 + React 19 + TypeScript
Styling Tailwind CSS v4
State Zustand
Icons lucide-react
Animations Framer Motion
File Upload react-dropzone
HTTP axios

Getting Started

Prerequisites

  • Python 3.10+
  • Node.js 18+

Backend Setup

cd backend
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # macOS/Linux
pip install -r requirements.txt

Create a .env file in backend/:

GEMINI_API_KEY=your-key
GROQ_API_KEY=your-key

Run:

python main.py

Server starts at http://localhost:8001

Frontend Setup

cd frontend
npm install
npm run dev

App runs at http://localhost:3000


Project Structure

backend/
├── main.py                          # FastAPI server
├── requirements.txt
├── core/                            # Shared core logic
│   ├── config.py                    # Model config & paths
│   ├── llm.py                      # LiteLLM wrapper with fallback
│   ├── ocr.py                      # OCR utilities
│   ├── graph.py                    # LangGraph pipeline
│   ├── state.py                    # Pipeline state definition
│   └── utils/                      # Converters, date logic, Excel helpers
├── nodes/                           # LangGraph nodes (Planner)
│   ├── parse_documents.py
│   ├── analyze_constraints.py
│   ├── generate_schedule.py
│   └── create_excel.py
├── apps/
│   ├── copo_mapping/                # COPO Attainment module
│   │   ├── router.py               # 6 API endpoints
│   │   └── services.py             # All Excel/Word processing (4400+ lines)
│   └── exam_generator/             # Exam Answer module
│       ├── router.py
│       └── services.py
├── parsers/                         # Specialized data extractors
├── uploads/                         # Temporary file storage
└── outputs/                         # Generated files

frontend/
├── src/
│   ├── app/                         # Next.js app router
│   ├── components/
│   │   ├── layout/                  # Header, Sidebar, Navigation
│   │   ├── upload/                  # Planner upload section
│   │   ├── processing/              # Processing view & progress
│   │   ├── results/                 # Results display
│   │   ├── copo/                    # COPO Attainment page
│   │   │   └── COPOMapping.tsx      # Full single-page form
│   │   ├── exam/                    # Exam Answer page
│   │   ├── logs/                    # Log terminal
│   │   └── ui/                      # Shared UI primitives (Button, Card)
│   ├── hooks/                       # useStore, useProcessingStream
│   ├── services/                    # API service layers
│   ├── lib/                         # Utilities
│   └── types/                       # TypeScript types
└── public/

API Endpoints

Planner

Endpoint Method Description
/health GET Health check
/generate-plan POST Upload files & start generation
/jobs/{job_id} GET Get job status
/download/{job_id} GET Download Excel file

COPO Attainment (/api/copo)

Endpoint Method Description
/get-sheets POST Get sheet names from an uploaded Excel
/extract-cos POST Extract COs from rubrics document
/upload-combined POST Generate ICA splitup only
/upload-ese POST Generate ESE splitup only
/generate-attainment-phase1 POST Generate workbook + compute GAPs
/generate-attainment-phase2 POST Apply actions & download final workbook

Exam Generator (/api/exam)

Endpoint Method Description
/generate POST Generate answers from question paper + syllabus

LLM Fallback Chain

Primary: Gemini 2.5 Flash Lite
    │ (rate limit 429)
    ▼
Fallback 1: Groq GPT-OSS-120B
    │ (rate limit)
    ▼
Fallback 2: Groq Llama 3.3 70B

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors