AEGIS-MIND is a local-first learning analytics platform that converts study material, syllabus maps, generated assessments, and imported Evalify results into a single diagnostic profile for one student.
AEGIS-MIND, also known as StudentHelper, is designed to answer a deeper question than βwhat score did I get?β It helps identify why performance changes across topics by combining:
- π syllabus-aware study material ingestion
- π― AI-generated MCQ assessments
- π weakness indexing and statistical diagnostics
- π§© prerequisite/root-cause analysis
- π€ sleep and stress context tracking
- π₯ external Evalify result imports
The application runs as a Streamlit dashboard, stores data locally in SQLite and ChromaDB, and uses cloud LLMs only when generating questions.
| Stage | What Happens |
|---|---|
| πΊοΈ Map | Create a structured syllabus by subject, unit, and topic. |
| π Ingest | Upload PDFs and classify extracted chunks into syllabus topics. |
| π Study | Review topic-specific material generated from uploaded content. |
| π― Assess | Generate MCQ tests using Gemini or Groq over local RAG context. |
| π₯ Import | Bring completed Evalify quiz results into the same diagnostic system. |
| π§ͺ Process | Run preprocessing for behavioral imputation and lucky-guess handling. |
| π Diagnose | Review weak topics, behavioral correlations, and prerequisite gaps. |
- Multi-PDF ingestion with topic-aware chunking.
- Local semantic classification using
sentence-transformers. all-MiniLM-L6-v2embeddings for fast topic matching.- ChromaDB-backed vector search for retrieval-augmented generation.
- Topic-specific study material viewer.
- Multi-topic MCQ generation from selected syllabus topics.
- RAG retrieval from locally processed study material.
- Provider selection between:
- Google Gemini via
GEMINI_API_KEY - Groq Llama 3.3 70B via
GROQ_API_KEY
- Google Gemini via
- Structured JSON validation and normalization for generated questions.
- In-app test-taking with session logging.
- Browser-based Tampermonkey exporter for Evalify result pages.
- One-click
Copy JSON for AEGIS-MINDbutton on supported Evalify quiz results. - Streamlit import page for validating, previewing, tagging, and importing results.
- MCQ-only filtering for compatibility with diagnostics.
- Duplicate import detection through
External_Test_ID. - Local embedding-based topic tagging against your syllabus.
- Optional diagnostics run immediately after import.
Full setup guide: EvalifyImport.md
- Topic-level Weakness Index calculation.
- IQR-based lucky-guess detection for timed in-app tests.
- Safe handling for Evalify imports with missing timing data.
- Sleep-hour imputation with
Is_Imputedtracking. - Sleep/stress correlation analysis.
- Kurtosis-based detection of broad weakness vs isolated mental blocks.
- Knowledge graph based root-cause analysis.
- Dashboard recommendation for the highest-priority focus topic.
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| Data Processing | Pandas, NumPy, SciPy, Scikit-Learn |
| Visualization | Plotly |
| Local Embeddings | Sentence Transformers |
| Vector Store | ChromaDB via LangChain Chroma |
| LLM Providers | Google Gemini, Groq Llama 3.3 70B |
| PDF Extraction | PyMuPDF |
| Database | SQLite |
| Browser Automation | Tampermonkey userscript |
StudentHelper/
βββ app.py # Streamlit entry point
βββ README.md # Product overview
βββ EvalifyImport.md # Evalify import guide
βββ tampermonkey_script.js # Evalify result-page exporter
βββ requirements.txt # Python dependencies
βββ student_helper.db # Local SQLite database
βββ chroma_db/ # Local vector database
βββ core/
β βββ analytics/ # Diagnostics, preprocessing, weakness analysis
β βββ db/ # SQLite schema and migrations
β βββ generator/ # PDF extraction, embeddings, RAG, question generation
β βββ runner/ # Sessions, logging, Evalify imports
β βββ syllabus/ # Syllabus parsing helpers
βββ pages/
βββ 1_Dashboard.py
βββ 2_Upload_and_Generate.py
βββ 3_Study_Material.py
βββ 4_Generate_Test.py
βββ 5_Take_Test.py
βββ 6_Diagnostic_Report.py
βββ 7_Syllabus_Mapping.py
βββ 8_Import_Evalify.py
Use the virtual environment for every Python command.
This keeps AEGIS-MIND dependencies isolated from your global Python install and avoids version conflicts.
python -m venv .venvWindows PowerShell:
.\.venv\Scripts\Activate.ps1macOS/Linux:
source .venv/bin/activatepython -m pip install --upgrade pip
python -m pip install -r requirements.txtThe first run may download local embedding model weights for
sentence-transformers.
Create a .env file in the project root:
GEMINI_API_KEY=your_gemini_key_here
GROQ_API_KEY=your_groq_key_herepython -m streamlit run app.pyUsing python -m streamlit ensures Streamlit is launched from the active .venv, not from a global Python installation. The database is initialized automatically. The Evalify import page also runs safe migrations for import metadata columns.
On Windows, you can also run:
.\run_app.batThe batch file checks for .venv\Scripts\python.exe, injects .venv\Scripts into PATH, and launches Streamlit through the virtual environment.
- Open Syllabus Mapping and define your subject, units, and topics.
- Open Upload and Generate to upload PDFs and prepare study material.
- Open Study Material to review extracted topic-wise content.
- Open Generate Test to create MCQs from selected topics.
- Complete the assessment in Take Test.
- Open Import Evalify to add external Evalify quiz performance.
- Review Dashboard and Diagnostic Report for recommendations.
| Data Type | Location |
|---|---|
| Uploaded PDFs | Local workspace |
| SQLite performance logs | student_helper.db |
| Vector embeddings | chroma_db/ |
| Evalify imports | Local database after manual paste |
| LLM generation context | Sent only when generating questions |
AEGIS-MIND is local-first by design. Study material processing, embeddings, classification, storage, and diagnostics happen locally. Gemini and Groq are used only for question generation from retrieved context.
- The current application is designed for a single default student:
Student_ID = 1. - Evalify imports currently support MCQ questions only.
- Descriptive and coding questions exported from Evalify are intentionally skipped during import.
- In-app tests include timing data; Evalify imports do not, so lucky-guess detection handles them separately.
| File | Purpose |
|---|---|
core/generator/question_generator.py |
Gemini/Groq MCQ generation and JSON validation |
core/generator/test_builder.py |
Multi-topic RAG test assembly |
core/runner/evalify_importer.py |
Evalify filtering, topic tagging, and DB import |
core/analytics/preprocessing.py |
Lucky-guess detection and behavioral imputation |
core/db/database_init.py |
Schema creation and safe migrations |
tampermonkey_script.js |
Evalify browser exporter |
AEGIS-MIND turns study history into an actionable learning map.