Inspiration
The MunichCompanion was born from the necessity to quickly and effectively integrade newcomers (especially international students and expats) into the local Munich community. Moving to a new city can be isolating, so our goal was to build an accessible social bridge that allows users to find interesting locations, meet like-minded people through shared interests and activities, have an intelligent, localized companion (chatbot) to help with questions about the city, culture or settling in and making the experience of Munich immediately social.
What it does
Munich Companion is a social application that links city discovery with the organization of local group activities. Users can search for nearby places on an interactive map (based on mood/category filters). Markers on the map directly indicate how many active groups are present at a specific location. Enables quick creation and joining of groups with specific age restrictions and descriptions. Each group features a chat room to socialize and plan their trip together. The Munich Bot (powered by the Gemini API) provides friendly, contextual, and localized assistance. Crucially, it actively recommends nearby, suitable locations if the user asks for company or events.
How we built it
Frontend: Developed with React and JavaScript/JSX:
- The map was built custom using JavaScript to render OpenStreetMap tiles, avoiding reliance on heavy external SDKs for flexibility and performance.
- Styling is achieved using a combination of CSS and Inline Styles.
Backend: Built using Python:
- The database logic (users, groups, locations) is simulated using Python in-memory dictionaries within GroupDataManager.py for fast prototyping.
- APIs are handled over HTTP Requests.
- Real-time chat is implemented using WebSockets.
AI Integration: The logic in app.py uses the Google Gemini API. It crafts a detailed system prompt that provides context including the user's current GPS location, the time, and a list of all active nearby groups to generate relevant recommendations.
The Google Maps API is used for fetching new locations in Munich.
Challenges we ran into
At first we tried to create a mobile aplication, but after some difficulties we settled down on creating a web application.
We also struggled with creating an interactiv frontend, since none of us had experience with it.
Accomplishments that we're proud of
We came here not expecting much as hackathon newcomers, but in the end we managed to achive a project that we're actually proud to present:
Complete Functional Flow: The app covers a full user journey, from registration and search to group creation, real-time chat, and AI assistance.
Value-Driven AI Integration: The chatbot is not a gimmick; it's an active part of the social ecosystem, incorporating current, verified group activities into its recommendations, providing direct value to the user.
Logical Backend: The Python backend logic includes essential business rules like age verification upon joining a group and automatic deletion of expired groups, demonstrating robustness.
What we learned
First hand experience with server endpoints
Data managment
Dynamic project development, since the idea only fully formed during development (it's quite hard coming up with good ideas)
What's next for MunichCompanion
Mobile app with pop-up notifications showing fun facts about your currrent environment
Connecting our already implemented backend logic to the frontend, which is a Matching system to find people you have interests in common with
Adding a profile and friend system, so you can connect and stay in touch through MunichCompanion
Making the data persistent
Built With
- fastapi
- javascript
- python
Log in or sign up for Devpost to join the conversation.