Skip to content

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

EduGuide AI Bot — Intelligent Partner in Academic Success

EduGuide AI Banner

Welcome to EduGuide AI Bot, an advanced, premium, AI-powered academic assistant and student guidance platform. This repository is structured as a monorepo containing a high-performance Spring Boot 3.x (Java 21) backend and a modern, responsive Next.js frontend.


🌟 Key Features

EduGuide AI Bot integrates several AI capabilities to guide students throughout their academic and professional journeys:

  1. RAG-based Academic QA: Upload academic papers or documents, index them into a Vector Database, and receive contextual answers to complex queries using Retrieval-Augmented Generation (RAG).
  2. AI Resume Analysis: Upload PDF resumes to get instant analysis, suggestions for improvements, and scores based on target roles.
  3. AI Mock Interviews: Conduct interactive mock interviews with real-time feedback and grading.
  4. Career Profiling & Guidance: Fill out career preference forms and get personalized career paths, skill gap analysis, and growth recommendations.
  5. Scholarship Finder: Input student details to get highly relevant, matched scholarship recommendations.

🏗️ System Architecture & Workflows

1. Document RAG Pipeline Workflow

This diagram illustrates how uploaded files are processed, vectorized, and searched to feed the Gemini LLM context:

sequenceDiagram
    autonumber
    actor User
    participant FE as Next.js Frontend
    participant BE as Spring Boot Backend
    participant APP as Appwrite Cloud Storage
    participant GEM as Gemini AI API
    participant PC as Pinecone Vector DB

    User->>FE: Upload academic PDF
    FE->>BE: POST /api/rag/upload
    BE->>APP: Upload PDF file
    APP-->>BE: Return File ID
    BE->>BE: Extract text from PDF (PDFBox)
    BE->>GEM: Generate text embeddings (text-embedding-004)
    GEM-->>BE: Return 768-dim vector embeddings
    BE->>PC: Upsert vectors & metadata (namespace = project-id)
    BE-->>FE: Return upload success confirmation
    
    User->>FE: Ask academic question
    FE->>BE: POST /api/rag/query
    BE->>GEM: Get query text embedding
    GEM-->>BE: Return query vector
    BE->>PC: Query top-K similar chunks
    PC-->>BE: Return matched text metadata & scores
    BE->>GEM: Generate response using prompt + retrieved chunks (gemini-2.5-flash)
    GEM-->>BE: Return final structured answer
    BE-->>FE: Return AI response to User
Loading

2. Resume Analysis & Evaluation Workflow

This diagram illustrates how resumes are parsed and evaluated:

graph TD
    A[User uploads Resume PDF] --> B[Next.js Frontend]
    B -->|POST /api/resume/analyze| C[Spring Boot Backend]
    C -->|Extract text| D[Apache PDFBox Parser]
    D --> E[Gemini 2.5 Flash Analyzer]
    E -->|Analyze resume against standards| F[JSON Content Generator]
    F -->|Return graded categories, score, suggestions| G[Structured API Response]
    G --> H[Frontend dashboard visual charts]
Loading

🛠️ Technology Stack

Component Technology Description
Frontend React 19, Next.js 15, TailwindCSS Elegant, modern, fully responsive user interface
Backend Spring Boot 3.2.4, Java 21, Spring Security Secure API gateway with robust JWT authentication
Database H2 Database / PostgreSQL, JPA Hibernate Persistent storage for users, career profiles, and logs
AI LLM Google Gemini (gemini-2.5-flash) Generative responses, JSON extraction, and analysis
Embeddings Gemini text-embedding-004 High-dimensional semantic representation of academic texts
Vector Search Pinecone Vector Database Extremely fast cosine-similarity search for RAG matching
File Storage Appwrite Cloud Storage Cloud bucket file storage for user resume and document PDFs

🚀 Getting Started

Prerequisites

  • Java Development Kit (JDK) 21
  • Node.js v20.x or higher
  • Maven 3.8+

1. Environment Configurations

Both backend and frontend leverage environment configurations. A .env file must be configured in the project root or relevant subdirectories.

We provide a .env.example template containing all variables needed:

# JWT Authentication Configuration
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRATION=86400000

# Google Gemini API
GEMINI_API_KEY=your_gemini_api_key_here

# Pinecone Vector Database API
PINECONE_API_KEY=your_pinecone_api_key_here
PINECONE_ENVIRONMENT=us-east-1
PINECONE_INDEX_NAME=eduguide-index

# Appwrite Cloud Configuration
APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=your_appwrite_project_id_here
APPWRITE_API_KEY=your_appwrite_api_key_here
APPWRITE_BUCKET_ID=your_appwrite_bucket_id_here

Create a copy of this file as .env and fill in the active keys.

Warning

.env files are ignored by Git in .gitignore to prevent any credentials from being pushed to public repositories. Never commit .env files.


2. Running the Backend

From the root workspace, navigate to backend and compile:

cd backend
mvn clean install
mvn spring-boot:run

The server will boot on http://localhost:8080.

3. Running the Frontend

In another terminal, navigate to the frontend and run:

cd frontend
npm install
npm run dev

The client app will launch on http://localhost:3000.


🔁 CI/CD Workflow

We have configured GitHub Actions in ci.yml to run automatic checks on every commit:

  • Build & Test Backend: Validates Java compilation and runs JUnit tests on Java 21 environment.
  • Build Frontend: Installs npm dependencies and compiles Next.js codebase to ensure no production build issues exist.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages