A Chrome Extension that processes all classroom content and classifies it into lectures, assignments, and announcements sections. It also allows users to add tags for classification and filtering based on lecture difficulty and exams (T1, T2, T3). Additionally, a chatbot feature is included, which can summarize content, clear doubts, and assist with lecture-related queries. User will also be able to save notes regarding some lectures if they want to.
- React: Frontend components
- Tailwind CSS: Styling
- Vite: Build tools and configuration
- Express and Node.js: Backend
- MongoDB Atlas: Database
- AWS S3 Bucket: For storing lectures
- Pinecone: Vector Database to store context of documents.
- Gemini:
gemini-pro-1.5model as our ai assistant.
- Sign-Up and Login Screen
- Home Screen
- Lecture Screen
- Chatbot Screen
- Notes Screen
- Authentication Routes: Login and Sign-Up
- User Information Routes:
- Processed classroom information
- Saved chats
- Chatbot Functionality: Provide streamed responses using Gemini.
- Notes Functionality: CRUD on Notes for each lectures.
- Handle Lecture Upload: recieve and upload lectures to S3 and save details to database.
- Scrap the classroom course data: Scrap the links of the lectures and send it to the server
- Simple UI: UI Button and status to inform user of processing.
- Signup/Login completed end to end.
- Able to process the lectures links from the classroom, download them and save them to s3 bucket through server, and store the lectures and course details in the database.
- Implemented UI components for chatbot and lectures classification Screens.
- Chatbot implemented, has the context of previous chats and also the lecture uploaded.
https://www.youtube.com/watch?v=7GPsZ_CkOFE
- Add further multiple document support for photos, videos and other file extension.
- Notes and can be shared through a link.
- Rewriting responses and better chatbot UI.
https://docs.google.com/presentation/d/1AdDuOMd7-pPmUYV8chKWzC8zThQCFjqh/edit?usp=sharing&ouid=109962653644267782719&rtpof=true&sd=true
Run the following command in your terminal to clone the repository locally:
git clone https://github.com/HarshSharma20503/CodeJam-v5.gitNow navigate to the project using the following command:
cd CodeJam-v5-
Navigate to the backend directory:
cd backend && npm install
-
Create a
.envfile in the backend directory:touch .env
-
Copy the contents of the
.env.examplefile into.env. -
Set up a MongoDB server and obtain the
Mongo_URI. Paste the URI into the.envfile. -
Ensure the
.envfile contains the valid credentials. -
Start the backend server:
npm run dev
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Build the frontend to create the
distfolder:npm install && npm run build
- Open your browser and navigate to the extensions page:
- For Chrome:
chrome://extensions - For Brave:
brave://extensions
- For Chrome:
- Enable Developer Mode (usually found in the top right corner).
- Click on Load Unpacked.
- Select the
distfolder generated in the frontend directory. - The extension is now added and ready to use.
- Sign up with an email that uses the
@mail.jiit.ac.indomain. - Log in and start using the extension features.
- Ensure backend server is running.
- The backend runs on port 8000 by default. Ensure there are no conflicts.
- For troubleshooting, ensure MongoDB is running and accessible.
