Skip to content

soham-founder/Learn-Nest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExamPilot - AI-Powered Adaptive Study Planner

ExamPilot is an AI-powered adaptive learning platform designed to revolutionize how students prepare for exams. It creates personalized study plans, helps students calibrate their confidence, and uses spaced repetition to ensure long-term retention of knowledge.

✨ Features

  • 🤖 Adaptive Study Planning: Generates a dynamic, personalized study schedule based on your specific needs and learning pace.
  • 🧐 Confidence Calibration: Helps you identify and bridge the gap between what you think you know and what you actually know.
  • 🗓️ Spaced Repetition: Schedules reviews at optimal intervals for long-term memory retention.
  • 📝 AI Note Summarization: Automatically summarizes your study notes to highlight key concepts.
  • 🍅 Pomodoro Timer & Focus Coach: Integrated tools to enhance focus and productivity during study sessions.
  • 🏆 Gamification: Stay motivated with achievement badges, streak counters, and a skill tree.
  • 🤝 Study Groups: Collaborate with peers in focused study groups.
  • 🌐 Browser Extension: Import course materials and notes directly from your browser.

🛠️ Tech Stack

Category Technology
Frontend React, TypeScript, Vite, Tailwind CSS, shadcn/ui
Backend Firebase Cloud Functions (Node.js, Express)
Database Cloud Firestore
Auth Firebase Authentication
AI Google Gemini
Deployment Firebase Hosting

🚀 Getting Started

Follow these instructions to get the project running on your local machine.

Prerequisites

1. Clone the Repository

git clone <your-repository-url>
cd ExamPilot

2. Install Dependencies

This project uses NPM workspaces. Install all dependencies from the root directory.

npm install

3. Configure Client Environment

The client application (client/) requires Firebase credentials to connect to your project.

  1. Navigate to the client directory: cd client

  2. Copy the example environment file:

    cp .env.example .env.local
  3. Open the new .env.local file and fill in your actual Firebase project configuration values. You can find these in your Firebase project settings.

4. Configure Server Environment

The backend Firebase Functions require a service account to interact with Firebase services.

  1. Go to your Firebase project settings, then the "Service accounts" tab.

  2. Click "Generate new private key" and save the JSON file.

  3. Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the absolute path of this downloaded JSON file. For example:

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

5. Run the Application

  1. Start the Firebase Emulators: This will start local emulators for Auth, Firestore, and Functions.

    firebase emulators:start
  2. Start the Frontend Development Server: In a new terminal, navigate to the client directory and run the dev script.

    cd client
    npm run dev

The application should now be running on http://localhost:5173, connected to the local Firebase emulators.

📁 Project Structure

A brief overview of the key directories in this project:

ExamPilot/
├── client/         # React frontend application (Vite)
├── functions/      # Firebase Cloud Functions for the backend API
├── common/         # Shared TypeScript types and code
├── extension/      # Chrome extension for content scraping
├── infra/          # Infrastructure config (Firebase rules, indexes)
├── docs/           # Project documentation
└── .github/        # CI/CD workflows

☁️ Deployment

The project is configured for easy deployment to Firebase.

  1. Build all packages:

    npm run build
  2. Deploy to Firebase:

    This command will deploy Firebase Hosting, Firestore rules, and Cloud Functions.

    firebase deploy

📄 API Endpoints

The backend API is served from a single Firebase Function (api) using an Express app. Key routes include:

  • GET /health
  • POST /import
  • POST /plan/generate
  • POST /quiz/generate
  • POST /chat/message
  • GET /analytics/progress

See functions/src/index.ts for the full list of routes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •