A modern chatbot web application that helps students and staff quickly find information about university courses, prerequisites, credits, electives, and more. Built with React (frontend) and FastAPI (backend).
- Natural Language Chatbot:
Ask questions like "What are the prerequisites for CS201?", "How many credits is MATH201?", or "Which has more credits, CS201 or CS450?" - Multi-Course Support:
Ask about multiple courses in one question: "What are the prerequisites for CS201 and CS301?" - Course Listing:
List all electives, core courses, or courses offered in a specific semester. - Course Comparison:
Compare courses for credits: "Which has more credits, CS201 or CS450?" - Beautiful UI:
Modern, responsive chat interface with course browser, bookmarks, and prerequisite graph visualization. - Easy Data Management:
Course data is stored in JSON for easy editing and extension.
.
βββ backend/ # Python FastAPI backend
β βββ app/ # Application code
β βββ data/ # Course data
βββ frontend/ # React frontend
βββ README.md # This file
-
Setup virtual environment:
cd backend python -m venv venv venv\\Scripts\\activate # On Windows # Or: source venv/bin/activate # On Mac/Linux
-
Install dependencies:
pip install -r requirements.txt
-
Run the backend server:
uvicorn app.main:app --reload
-
Install dependencies:
cd frontend npm install -
Run the frontend:
npm start
What are the prerequisites for CS301?How many credits is MATH201?Describe CS201What type of course is CS450?List all electivesShow all courses offered in SpringWhich has more credits, CS201 or CS450?What are the prerequisites for CS201 and CS301?
- Add/Edit Courses:
Update thecourses.jsonorcourse_data.pyinbackend/app/data/. - Extend Chatbot Intelligence:
Enhance the/courses/askendpoint inbackend/app/routers/courses.pyfor more advanced queries.
- Backend: FastAPI, Uvicorn, Pydantic, Python-dotenv
- Frontend: React, Material-UI, Axios, Framer Motion
Pull requests and suggestions are welcome!
For major changes, please open an issue first to discuss what you would like to change.
MIT License