Skip to content

Kathitjoshi/Eduverse

Repository files navigation

EduVerse Application Documentation

EduVerse is a full-stack, modular learning platform powered by React, TypeScript, Tailwind CSS, Express, and Google Gemini. The application is built to accommodate college-level science study through integrated document OCR ingestion simulations, adaptive explanation tuning, spaced-repetition math scheduling via the SM-2 cognitive algorithm, and dynamic dependency mapping of academic concepts.

Note: Due to high demand, service may be disrupted temporarily and the output you get from chat can be understood better here!!


Screenshot 2026-05-26 192149 Screenshot 2026-05-26 192205 Screenshot 2026-05-26 192219 Screenshot 2026-05-26 192235 Screenshot 2026-05-26 192249 Screenshot 2026-05-26 192302 Screenshot 2026-05-26 192315 Screenshot 2026-05-26 192327 Screenshot 2026-05-26 192340 Screenshot 2026-05-26 192358

Technical Overview

The application features a performance-optimized client-side single-page architecture (SPA) that can optionally bind to an Express server backend for secure API routing. Key metrics and student state persist inside local memory scopes to give users instant access without requiring signups or account verification.


Directory Structure and File Responsibilities

Below is an overview of the organization of the codebase:

/
├── .env.example             # Template for required environment variables (e.g., GEMINI_API_KEY)
├── .gitignore               # Ignored build artifacts, dependencies, and environment files
├── README.md                # System documentation, deployment guides, and execution scripts
├── index.html               # Primary HTML mount and viewport meta settings
├── package.json             # Build commands, scripts, and runtime dependencies
├── server.ts                # Full-stack Express server and development middleware configuration
├── tsconfig.json            # TypeScript compiler configuration parameters
├── vite.config.ts           # Vite bundler options and client application settings
└── src/                     # Client application source directory
    ├── App.tsx              # Root application component containing core views and tabs
    ├── index.css            # Styles, tailwind directives, scrollbar configurations, and keyframes
    ├── main.tsx             # Entry point file mounting the application to index.html
    ├── types.ts             # Shared database models, interfaces, and study deck types
    └── components/          # Extracted modular elements and user interface dashboards
        ├── AIPreviewShowcase.tsx   # Simulated chatbot request-and-response component
        ├── BackgroundParticles.tsx # Interactive background canvas rendering academic glyphs
        ├── FlashcardReview.tsx     # Leitner card study deck interface with SM-2 score controls
        ├── HomeFAQs.tsx            # Frequently asked questions component with animated dropdowns
        ├── HomeSandbox.tsx         # Spaced repetition calculator and OCR laser scan emulator
        ├── KnowledgeGraph.tsx      # SVG concept map with node selection and dependency highlights
        ├── Leaderboard.tsx         # Interactive student scoreboards and performance logs
        ├── Navbar.tsx              # Modular header navigation drawer
        ├── ProgressTracker.tsx     # Conceptual completion lists and active study timer
        ├── SnapAnalyze.tsx         # Handwritten notes and formula uploader interface
        └── TutorChat.tsx           # Conversations channel with AI tutor and automated prompts

Storage and State Management Architecture

To ensure high-speed client interactions and ease of use, all memory structures are configured as follows:

  • Runtime Context Layer: Current tabs, active chat backlogs, and customized visual explanations are bound to React component states.
  • In-Memory Storage Pools: Flashcard review dates, Ease Factor values, quality ratings, and custom user questions are preserved across session lifetimes. Interval variables dynamically scale or shrink after scoring reviews.

Compilation and Development Setup

Follow these steps to configure your environment and run the application locally:

1. Install Dependencies

Run the package installation command to download and compile the node modules:

npm install

2. Configure Environment Variables

You can specify real Google Gemini API keys in a .env file at the root level of the folder structure:

GEMINI_API_KEY="AIzaSyYourActualGoogleGeminiKey"

Note: If no key is provided, the application switches gracefully to client-side simulated response parameters so that all features remain accessible.

3. Start the Development Server

This runs Vite combined with the full-stack entry point on port 3000:

npm run dev

4. Code Production Build

To build the application for deployment into production, execute:

npm run build
npm start

LICENSE

MIT License


About

An open-source personal tutoring platform featuring textbook document scanning, interactive spaced-repetition retention forecasting, dynamic study syllabus trackers, and an adaptive hands-free learning tutor powered by server-side Gemini 3.5.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages