A web-based application designed to enhance the teaching and learning experience using AI-driven features such as transcription, summarization, automated quiz generation, performance analytics, and a context-aware RAG (Retrieval-Augmented Generation) chatbot.
Prompt2Learn aims to provide:
- Teachers an easy way to upload lecture materials (audio, PPTs), generate summaries, create automated quizzes, and review student performance analytics.
- Students quick access to lecture summaries, quizzes, personalized feedback, and a contextual chatbot to resolve doubts using past lecture content.
This repository contains code for both the backend (Spring Boot) and frontend (React), along with a Python-based Flask server dedicated to handling RAG chatbot interactions and content summarisation.
- Lecture Upload: Upload PPTs or audio files for AI-driven transcription and summarization.
- Automated Quiz Generation: Create quizzes based on uploaded materials for instant student assessments.
- Performance Analytics: Gain insights into student performance, identifying strengths and weaknesses.
- RAG Chatbot: A context-aware chatbot that references previously uploaded content to answer student queries accurately.
- Teacher Insights: Data-driven reports that highlight areas where students need additional support.
- Flask Server for AI Services: A dedicated Python-based Flask server running the RAG chatbot and summarisation services.
├── Portal
│ └── Portal # Spring Boot backend source code
├── portalfront
│ └── src # React frontend source code
├── flask_server # Flask server for RAG chatbot and summarisation
├── prompt2LearnIdea.pdf # Concept/idea document (not required for build)
└── README.md # Project README (this file)
- Frontend: React
- Backend: Spring Boot (Java)
- Database: MongoDB (or any other database you configure)
- AI/ML Components & Server:
- Python-based Flask server that runs the RAG chatbot and content summarisation services.
- AI/ML libraries and APIs for transcription, summarization, and quiz generation.
- Java 20+ installed (for Spring Boot)
- Node.js (v14+ recommended) and npm or yarn (for React)
- Python 3.9+ (for the Flask server)
- MongoDB or another database (if not using an in-memory DB)
-
Clone the repository
git clone [https://github.com/jas2506/Prompt2Learn] cd Prompt2Learn -
Backend Setup (Spring Boot)
- Navigate to the backend folder (e.g.,
Portal/Portal). - Ensure you have the required dependencies (Maven or Gradle).
- Configure your database settings in the application properties or YAML file.
- Build the project:
mvn clean install
- Run the application:
mvn spring-boot:run
- The backend should be accessible on a configured port.
- Navigate to the backend folder (e.g.,
-
Frontend Setup (React)
- Navigate to the
portalfrontfolder. - Install dependencies:
npm install
- Start the development server:
npm run dev
- Navigate to the
-
Flask Server Setup (Python)
-
Navigate to the project root where flask server is located.
-
Set up a virtual environment and install required packages:
-
Run the Flask server:
python groq_test.py python rag_api.py
- The Flask server should be running on its default port handling RAG chatbot and summarisation requests.
-
- Upload Lecture Materials: Teachers log in to upload PPTs or audio files via the backend interface, triggering AI-based transcription and summarisation.
- Generate Summaries & Quizzes: Once materials are processed, the system auto-generates summaries and quiz questions.
- Student Dashboard: Students access summarized content, take quizzes, and monitor their performance through the React-based frontend.
- RAG Chatbot & Summarisation: The Python-based Flask server handles requests for the RAG chatbot, providing context-aware answers and additional content summarisation.