Inspiration
As 2nd year Durham University students, the stark difference between the social environment in sixth form and in university is still a fresh memory. The transition from tightly-knit friend groups and daily classes together to meeting new people everyday and never knowing the name of the person sitting next to you is one of the biggest challenges we and many others faced. This social shock therapy can be difficult for many people, especially those from marginalized backgrounds, to deal with. Our goal with this project was to ease this transition for such people, and help people find community in their niche interests, or just find buddies to sit down, chat with and study with.
What it does
StudyDino is a campus study‑group finder that turns a map into a live hub for collaboration. Students can create or discover nearby groups by module or interest, join with one tap, and immediately chat with members in real time. The app handles onboarding, profiles, and group membership so students spend less time coordinating, more time studying together, and even more time socializing. StudyDino also offers a friendly AI assistant named "DinoBot"! DinoBot is the in‑app assistant that helps students discover relevant study groups by suggesting matches based on their interests and questions!
How we built it
We built StudyDino as a full‑stack web app with a React + Vite client styled with Tailwind and animated transitions, backed by an Express + MongoDB API secured with Auth0. The map experience uses MapLibre to show study groups as pins, with filtering by module or interest, while group membership is managed through REST endpoints. Real‑time group chat and member updates are delivered via WebSockets, and group data is cleaned up automatically when sessions expire or groups become empty. Onboarding and profile data keep group creation tied to university/module context for more relevant matches.
DinoBot is implemented as a lightweight wrapper around Google’s Gemini model, taking a user’s prompt and recent context to generate concise, friendly suggestions about relevant study groups. It provides quick guidance without interrupting the main flow, acting as a helper that surfaces matches and next steps for students.
Challenges we ran into
Multi-Service Integration: We had challenges in synchronising various external services, for example, including Auth0 for identity management, MongoDB as our database and Google Gemini for our custom DinoBot and each needed a custom implementation.
State Management: We had to manage synchronised UI states for components like the interactive map and the DinoBot drawer, while ensuring consistent accessibility and visibility across light and dark mode themes.
Customising External UI Components: We had to invest time in overriding the default behaviours of third-party services, such as styling the Auth0 UI and managing the profile logout redirects to match our application’s custom design system.
Accomplishments that we're proud of
Recommender System: We successfully built a sophisticated recommender system using vector embeddings stored in MongoDB and Gemini API integrated with the DinoBot to provide users with contextual suggestions.
Collaborative Design: Our team successfully moved from initial wireframes to a good looking end product.
What we learned
Using new tech stacks: This was our first experience with tech such as shadcn/ui for accessible component architecture and MongoDB for flexible, document-based storage, which expanded our knowledge on how to build scalable full-stack applications.
Modularisation: We learned the importance of effective code modularisation by separating our logic into dedicated routes, models, and features, allowing both us members to develop the client and server simultaneously without merge conflicts.
What's next for StudyDino
Our vision for StudyDino is to make it a gamified social study platform. We plan to implement daily/weekly streaks, achievements, leaderboards, and leveling. From a university admin's point of view, we are also planning to enable SSO with university Microsoft ecosystems so that students can sign on to DinoBot using their university email. This would enable the university to not only get valuable data about where students like meeting up, but also moderating and ensuring the safety of students on the platform. From a development standpoint, we believe it is also imperative to set up a comprehensive CI/CD pipeline in order to speed up deployment and deliver updates faster, as with a new project, such updates would come out almost weekly!
Built With
- atlas
- auth0
- express.js
- gemini
- mongodb
- mongoose
- react
- shadcn
- tailwind
- typescript
- vite
- websockets
Log in or sign up for Devpost to join the conversation.