Inspiration
Our team was inspired by the everyday challenges faced by Rutgers University students, from navigating the campus to scheduling classes and finding study spaces. We noticed a gap in existing resources - there was no single, streamlined platform that addressed all these needs. This realization sparked the idea for our "All in One Rutgers App." Our goal was to integrate critical student services into one intuitive, user-friendly application, reducing stress and enhancing the Rutgers experience.
What it does
The "All in One Rutgers App'' serves as a comprehensive tool for Rutgers students. It features "Sir Henry," a Rutgers AI-powered chatbot built on the Gemini framework and trained with Rutgers website data, providing answers to a wide range of student queries that can answer with specific information directly from the Rutgers websites. The app includes real-time bus tracking with Google Maps integration along with sending text messages to users when to best leave for their next class. This would take into account traffic as well as walking times allowing for better planning of students times. It also will offer a dynamic class scheduling feature tailored to majors and elective preferences, including prerequisites using data from webreg and course schedule planner. Additionally, the app aids in finding open study rooms, allowing students to find quiet areas to study.
How we built it
Our team used Figma for the UI/UX design, Python for backend development, and we collaborated using GitHub. Our app's standout feature is "Sir Henry," a Rutgers-focused chatbot, developed with the Gemini AI framework. We prioritized creating an accurate real-time bus tracking system, integrating it with Google Maps for campus navigation. Due to time constraints, we focused on these elements over the Rutgers class scheduler, ensuring quality and functionality, but we incorporated these into the figma so we could develop these in the future.
Challenges we ran into
One of the main challenges was integrating various data sources and APIs, particularly for training the Sir Henry bot. Having accurate and relevant information from the Rutgers website data required significant effort in data preprocessing and model tuning. We had to find a way to use relevant links from all the various rutgers websites in order to create a model with the proper rutgers knowledge. Additionally training the model was a time consuming process requiring additional processing of the websites used.
Accomplishments that we're proud of
Sir Henry's AI
What we learned
Throughout this project, we learned about the intricacies of developing an integrated platform that combines various technologies and data sources. We gained valuable experience in AI development, particularly in training and implementing a chatbot. We also learnt how to use different open source libraries such as BeautifulSoup and requests to code our backend .We were also able to enhance our skills in UI/UX design by learning how to use figma for the front end.
What's next for Sir Henry's Roundtable
Moving forward, we plan to expand the functionality of the "All in One Rutgers App" by adding further personalized features, such as class/exam schedules, integrated dining hall menus that provide nutritional information allowing for students to find a way to meet their daily calorie and nutrient needs. We also intend to refine the AI chatbot's capabilities for more specific questions and incorporate a way for the bot to help you plan your schedule. Our ultimate goal is to make Sir Henry be a virtual personal assistant available for all rutgers students assisting with their day to day so students can better focus on their education.
Built With
- aiohttp==3.9.3
- aiosignal==1.3.1
- annotated-types==0.6.0
- anyio==4.3.0
- appnope==0.1.4
- asgiref==3.8.1
- asttokens==2.4.1
- async-timeout==4.0.3
- attrs==23.2.0
- backoff==2.2.1
- bcrypt==4.1.2
- beautiful-soup
- beautifulsoup4==4.12.3
- bs4==0.0.2
- build==1.1.1
- cachetools==5.3.3
- certifi==2024.2.2
- charset-normalizer==3.3.2
- chroma-hnswlib==0.7.3
- chromadb==0.4.24
- chromedriver-autoinstaller==0.6.4
- click==8.1.7
- coloredlogs==15.0.1
- comm==0.2.2
- cssselect==1.2.0
- dataclasses-json==0.6.4
- debugpy==1.8.1
- decorator==5.1.1
- deprecated==1.2.14
- dirtyjson==1.0.8
- distro==1.9.0
- exceptiongroup==1.2.0
- executing==2.0.1
- fastapi==0.110.0
- feedfinder2==0.0.4
- feedparser==6.0.11
- figma
- filelock==3.13.1
- flatbuffers==24.3.7
- gemini
- google-ai-generativelanguage==0.4.0
- google-api-core==2.18.0
- google-auth==2.29.0
- google-generativeai==0.3.2
- googleapis-common-protos==1.63.0
- googlemaps==4.10.0
- greenlet==3.0.3
- grpcio==1.62.1
- huggingface-hub==0.21.4
- humanfriendly==10.0
- idna==3.6
- importlib-metadata==6.11.0
- importlib-resources==6.4.0
- ipykernel==6.29.3
- ipython==8.18.1
- jedi==0.19.1
- jieba3k==0.35.1
- joblib==1.3.2
- jsonpatch==1.33
- jsonpointer==2.4
- jupyter-client==8.6.1
- jupyter-core==5.7.2
- kubernetes==29.0.0
- langchain-community==0.0.29
- langchain-core==0.1.33
- langchain-text-splitters==0.0.1
- langchain==0.1.13
- langsmith==0.1.31
- llama-index-agent-openai==0.1.7
- llama-index-cli==0.1.11
- llama-index-core==0.10.23.post1
- llama-index-embeddings-gemini==0.1.5
- llama-index-embeddings-openai==0.1.7
- llama-index-indices-managed-llama-cloud==0.1.5
- llama-index-legacy==0.9.48
- llama-index-llms-gemini==0.1.6
- llama-index-llms-openai==0.1.12
- llama-index-multi-modal-llms-openai==0.1.4
- llama-index-program-openai==0.1.4
- llama-index-question-gen-openai==0.1.3
- llama-index-readers-file==0.1.12
- llama-index-readers-llama-parse==0.1.3
- llama-index-readers-web==0.1.7
- llama-index-vector-stores-pinecone==0.1.4
- llama-index==0.10.23
- llama-parse==0.3.9
- llamaindex-py-client==0.1.13
- lxml==5.1.0
- marshmallow==3.21.1
- matplotlib-inline==0.1.6
- mmh3==4.1.0
- monotonic==1.6
- mpmath==1.3.0
- multidict==6.0.5
- mypy-extensions==1.0.0
- nest-asyncio==1.6.0
- networkx==3.2.1
- newspaper3k==0.2.8
- nltk==3.8.1
- numpy==1.26.4
- oauthlib==3.2.2
- onnxruntime==1.17.1
- openai==1.14.2
- opentelemetry-api==1.23.0
- opentelemetry-exporter-otlp-proto-common==1.23.0
- opentelemetry-exporter-otlp-proto-grpc==1.23.0
- opentelemetry-instrumentation-asgi==0.44b0
- opentelemetry-instrumentation-fastapi==0.44b0
- opentelemetry-instrumentation==0.44b0
- opentelemetry-proto==1.23.0
- opentelemetry-sdk==1.23.0
- opentelemetry-semantic-conventions==0.44b0
- opentelemetry-util-http==0.44b0
- orjson==3.9.15
- outcome==1.3.0.post0
- overrides==7.7.0
- packaging==23.2
- pandas==2.2.1
- parso==0.8.3
- pexpect==4.9.0
- pillow==10.2.0
- pinecone-client==3.2.0
- platformdirs==4.2.0
- playwright==1.42.0
- posthog==3.5.0
- prompt-toolkit==3.0.43
- proto-plus==1.23.0
- protobuf==4.25.3
- psutil==5.9.8
- ptyprocess==0.7.0
- pulsar-client==3.4.0
- pure-eval==0.2.2
- pyasn1-modules==0.3.0
- pyasn1==0.5.1
- pydantic-core==2.16.3
- pydantic==2.6.4
- pyee==11.0.1
- pygments==2.17.2
- pymupdf==1.24.0
- pymupdfb==1.24.0
- pypdf2==3.0.1
- pypdf==4.1.0
- pypika==0.48.9
- pyproject-hooks==1.0.0
- pysocks==1.7.1
- python
- python-dateutil==2.9.0.post0
- python-dotenv==1.0.1
- pytz==2024.1
- pyyaml==6.0.1
- pyzmq==25.1.2
- regex==2023.12.25
- requests-file==2.0.0
- requests-oauthlib==2.0.0
- requests==2.31.0
- rsa==4.9
- selenium==4.18.1
- sgmllib3k==1.0.0
- six==1.16.0
- sniffio==1.3.1
- sortedcontainers==2.4.0
- soupsieve==2.5
- sqlalchemy==2.0.29
- stack-data==0.6.3
- starlette==0.36.3
- striprtf==0.0.26
- sympy==1.12
- tenacity==8.2.3
- tiktoken==0.6.0
- tinysegmenter==0.3
- tldextract==5.1.2
- tokenizers==0.15.2
- tomli==2.0.1
- tornado==6.4
- tqdm==4.66.2
- traitlets==5.14.2
- trio-websocket==0.11.1
- trio==0.25.0
- typer==0.10.0
- typing-extensions==4.10.0
- typing-inspect==0.9.0
- tzdata==2024.1
- urllib3==2.2.1
- uvicorn==0.29.0
- uvloop==0.19.0
- watchfiles==0.21.0
- wcwidth==0.2.13
- websocket-client==1.7.0
- websockets==12.0
- wrapt==1.16.0
- wsproto==1.2.0
- yarl==1.9.4
Log in or sign up for Devpost to join the conversation.