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!!
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.
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
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.
Follow these steps to configure your environment and run the application locally:
Run the package installation command to download and compile the node modules:
npm installYou 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.
This runs Vite combined with the full-stack entry point on port 3000:
npm run devTo build the application for deployment into production, execute:
npm run build
npm startMIT License