We have developed a secure, multi-role web/mobile application tailored for college environments that will serve as a centralized platform for college students, professors, and administrators.
- Core Features
- Our Solution
- Tech Stack
- Installation and Setup
- Key Features Explained
- Architecture
- UI/UX Mockups
- Contributors
- Using multi-factor authentication (2FA) during login
- Role-Based Access Control (RBAC) for each user type
- Comprehensive Academic Dashboard (Curriculum, Marks, Attendance)
- Database-Augmented LLM chatbot for personalized student assistance
- AI-powered quiz generation from PDF or text prompt
- Seamless Offline Mode
- Easily update marks and attendance through the app in real-time
- Evaluate assignments and give instant feedback for better learning
- Dynamic User Role and System Configuration Management
- Controlled Temporary Role Escalation
EduConnect is a comprehensive college management system built with the MERN stack and React Native, providing a seamless experience across web and mobile platforms. The application integrates advanced AI features including a personalized chatbot for students and automated quiz generation from educational materials.
- MongoDB: NoSQL database that provides flexibility for handling various data structures required in an educational platform
- Express.js: Minimalist web framework for Node.js that simplifies backend API development
- React: Frontend library that enables building interactive user interfaces with reusable components
- Node.js: JavaScript runtime that allows for efficient server-side operations
- React Native: Framework for building cross-platform mobile applications using React
- TypeScript: Adds static typing to JavaScript, improving code quality and developer experience
- Expo: Toolkit for React Native that simplifies mobile app development
- OpenAI API + Database-Augmented LLM with LangChain: For creating a student-specific chatbot that directly queries academic records
- OpenAI API: Powers the quiz generation feature, converting PDFs and text into educational quizzes
- Node.js (v14.x or higher)
- MongoDB (v4.x or higher)
- Python (v3.8 or higher)
- npm or yarn
- Expo CLI
-
Clone the repository:
git clone https://github.com/hazraChandrima/EduConnect.git cd EduConnect/ -
Install backend dependencies:
cd backend/ npm install -
Create a
.envfile in the backend directory with the following variables:MONGODB_URI=your_mongodb_connection_string PORT=3000 JWT_SECRET=your_jwt_secret EMAIL_USER=your_email EMAIL_PASS=your_email_password IP_ADDRESS=your_local_ip_address -
Start the backend server (using nodemon):
npm run dev
The backend will be available at http://127.0.0.1:3000/
-
Install frontend dependencies:
cd frontend/ npm install -
Configure environment variables:
Create two configuration files in the root of your frontend project (cuz Expo with Typescript doesn't support .env fr some reason) :
a. app-config.ts
// app-config.ts // This file contains API URLs for different services const IP_ADDRESS = "YOUR_LOCAL_IP_ADDRESS" export const APP_CONFIG = { API_BASE_URL: `http://${IP_ADDRESS}:3000`, API_CHATBOT_URL: `http://${IP_ADDRESS}:5000`, API_PDF_QUIZ_URL: `http://${IP_ADDRESS}:8000`, };
b. firebase-config.ts
// firebase-config.ts // This file contains your Firebase configuration export const FIREBASE_CONFIG = { apiKey: "YOUR_FIREBASE_API_KEY", authDomain: "YOUR_FIREBASE_AUTH_DOMAIN", projectId: "YOUR_FIREBASE_PROJECT_ID", storageBucket: "YOUR_FIREBASE_STORAGE_BUCKET", messagingSenderId: "YOUR_FIREBASE_MESSAGING_SENDER_ID", appId: "YOUR_FIREBASE_APP_ID", measurementId: "YOUR_FIREBASE_MEASUREMENT_ID" };
Note: Add these configuration files to your
.gitignore. -
Start the React Native development server:
npx expo start
The frontend will be available at http://127.0.0.1:8081/
-
Install Python dependencies:
cd edubot/ pip install -r requirements.txt -
Set up environment variables by creating a
.envfile in the edubot/ directory:OPENAI_API_KEY=your_openai_api_key SERPAPI_API_KEY=your_serpapi_api_key MONGODB_URI=your_mongodb_connection_string -
Run the chatbot API:
python app.py
The chatbot API will be available at http://127.0.0.1:5000/ask
-
Install Python dependencies:
cd PDF-text_to_quiz/ pip install -r requirements.txt -
Set up environment variables by creating a
.envfile in the PDF-text_to_quiz/ directory:OPENAI_API_KEY=your_openai_api_key -
How to Run the API
You have two options for running the application:
uvicorn main:app --host 127.0.0.1 --port 8000 --reloadThis runs both services under a single server:
- PDF to Quiz: http://127.0.0.1:8000/pdf_to_quizz
- Text to Quiz: http://127.0.0.1:8000/text_to_quizz
Navigate to the src/api directory first:
cd src/apiThen run each service on its own port:
PDF to Quiz API (Port 8000)
uvicorn api_pdf:app --host 127.0.0.1 --port 8000 --reloadAccess at: http://127.0.0.1:8000/pdf_to_quizz
Text to Quiz API (Port 8001)
uvicorn api_text:app --host 127.0.0.1 --port 8001 --reloadAccess at: http://127.0.0.1:8001/text_to_quizz
- Implemented multi-factor authentication using
speakeasyandqrcodelibraries, andnodemailerfor sending OTP via mail. - Secure password hashing with
bcrypt - JWT-based authentication with role-based access control
- Context-aware authentication analyzes user behavior patterns
- Implements a Database-Augmented LLM architecture that translates natural language into MongoDB queries
- Intelligently classifies queries to determine when to access personal student data
- Maintains a semantic similarity cache for efficient responses to common questions
- Features a fallback system for general knowledge questions not requiring personal data
- Automatically generates quizzes from PDF documents or text prompts
- Uses OpenAI API to extract key concepts and create relevant questions
- Helps instructors create assessment materials efficiently
- Comprehensive student performance tracking
- Real-time attendance and grade updates
- Personalized learning analytics
This repository follows a monorepo architecture β all four core modules of EduConnect are maintained within this single repository:
- Backend API Service (/backend)
- LLM Chatbot Service (/edubot)
- Quiz Generator Service (/PDF-text_to_quiz)
- Frontend Web & Mobile App (/frontend)
The Architecture diagram above visually highlights how these modules interact.

