The inspiration for our project, Syllabot, comes from our experience as students having to dig through pages of syllabus text only to miss a crucial deadline or grading rule. We saw an opportunity to create a tool that would empower OSU students and help them succeed in their academic journey.
Syllabot is an academic chatbot designed to simplify the academic experience for OSU students. It takes course syllabi and files to answer any questions students have. Whether it's clarifying grading rules, highlighting an unusual due date, or offering guidance on assignments, Syllabot is your academic sidekick, ready to assist 24/7.
We built our application using a multitude of services/frameworks/tools:
- React.js for the client frontend
- Tailwind for styling
- DaisyUI for animations and UI components
- ExpressJS for our REST.API
- MongoDB for the document and course-info storage
- LangChain to parse PDF documents
- Pinecone as the VectorDB for our vectorized document data
- OpenAI's API for the generative chats
- Render for frontend deployment
- Managing many different services and getting them to work together in fluidity.
- Reading a lot of documentation -- this was the first time any of us had use Vector Databases and embeddings. It took a lot of research and heads-down coding to get it working.
- Finding time to work as a team -- we all have busy lives as college students, and finding time to work for 72 hours brought some difficulties.
- Depricated/incompatible packages for our authentication manager in the back end.
- Finishing our project and getting it working! We were honestly surprised at the progress we made each day and are super proud of the end product.
- Learning a ton of new technologies
- Used Vector Databases for the first time
- Learned concepts regarding embeddings,
- Worked together as a team for the first time
- Improve AI chat generation using more metadata to query the vector database.
- Add options to remove and edit course files.
- Implement global state management to enhance security.
- Allow users to submit files without logging in.