EduMind is an advanced, AI-powered educational system designed to automate curriculum design, assessment creation, and grading. Built with a clean, light-themed lavender glassmorphism aesthetic, the application provides an interactive portal for students to take assessments and an administrative panel for instructors to ingest documents, configure exams, and audit class performance using data visualization.
Instructors access the Instructor Interface (secured by password authentication) where they specify target assessment parameters, such as the number of Multiple Choice Questions (MCQs) and Short Answer Questions (SAQs). They upload a PDF document containing the reference source material.
The system parses the document content and routes the extracted text to Google Gemini (specifically the gemini-2.5-flash model) using the modern google-genai SDK. By enforcing strict JSON schema configurations through Pydantic data models, the platform receives predictable, structured lesson summaries, key learning points, and hybrid question sets. These are automatically persisted in a local database.
Students choose a deployed module from the assignment selection catalog and submit their credentials. They are presented with a lesson review card and the corresponding assessment.
- MCQ grading is evaluated deterministically by matching the candidate selection against the answer key.
- Short Answer grading utilizes the AI engine to evaluate student explanations against explicit rubric criteria, awarding a score of 0, 1, or 2 marks accompanied by a clear, written feedback rationale.
Score records are stored in the database. Deployed metrics dashboards aggregate overall student performance, showcasing the total verified submissions, class mean average, and maximum scores. Interactive bar charts render score distributions across the different modules.
- Main Application Framework: Streamlit (Python)
- Design Language: Custom CSS featuring Lavender Glassmorphism, smooth animations, and responsive flexbox layouts
- Language: Python 3
- AI Engine Provider: Google Gemini (gemini-2.5-flash) via the google-genai SDK
- Data Processing & Visualization: Pandas and Plotly Express
- Relational Storage: SQLite3 (local serverless database)
- Document Reader: PyPDF2
- Environment Configuration: python-dotenv
- app.py: Entrypoint file containing main UI execution tabs, session routing, and HTML/CSS styling overrides.
- core/ai_engine.py: AI client initialization, PDF text extractor, generation configurations, and short-answer grading schema declarations.
- core/database.py: Relational database initialization script, lesson metadata insertion logic, and candidate score registration methods.
- init_db.py: Standalone console helper to initialize the SQLite database tables.
- fix_db.py: Standalone migration helper to update legacy databases to include question type mappings.
- requirements.txt: Python dependency manifest.
- .gitignore: File configuration to exclude virtual environments, environment secrets, and sqlite databases from being tracked in Git.
- Python 3.10 or higher installed on your local machine.
-
Clone the repository and navigate to the project directory:
git clone <repository-url> cd EduMind
-
Set up a virtual environment and activate it:
python -m venv venv # On Windows (PowerShell): .\venv\Scripts\Activate.ps1 # On macOS/Linux: source venv/bin/activate
-
Install the required libraries:
pip install -r requirements.txt
-
Configure the Google GenAI environment variable:
- Define the
GEMINI_API_KEYsystem environment variable:# On Windows (Command Prompt): set GEMINI_API_KEY="your_api_key_here" # On Windows (PowerShell): $env:GEMINI_API_KEY="your_api_key_here" # On macOS/Linux: export GEMINI_API_KEY="your_api_key_here"
- Alternatively, you can add it to a local
.envfile in the project root:GEMINI_API_KEY=your_api_key_here
- Define the
-
Initialize the database tables:
python init_db.py
-
Run the Streamlit application:
streamlit run app.py
-
Access the application on
http://localhost:8501. Use the gateway credentialsEDUMIND123to log in to the Instructor Interface and Analytics views.