Inspiration

Gather Point was inspired by desire to foster community and action within the Ames community and beyond. In the case of places like Ames, a majority of residents are university students. Many of these students are only here for about four years, resulting in a constant flow of people new to the area, and those who are familiar moving on and away. With this lack of consistent presences on campus, an unfortunate result is that a large portion of the population are perpetually unfamiliar with the area. This led to the creation of Gather Point, an approachable and inviting social good app. With the interactive 3D map to create, view, and RSVP for events, the app fosters a greater cognitive sense of familiarity, as people can rely on familiar looking buildings and roads rather than requiring exact knowledge of the how's and where's.

What it does

Gather Point is an app for connecting individuals within the same town or city to meet up for socially-minded events. Events can be created for meeting as a group for activities such as volunteering, book clubs, sport activities, crafting, and even simply to hang out. Users can RSVP to events that are created by others, seeing dates, times, locations, and lists of attendees for any given event. Suggestions for events are curated by Gemini AI based on past event attendance trends. Friend requests can be sent to users you've gone to events with, enabling user-to-user chats on Gather Point as well. This helps create a deeper sense of community with one's peers, carrying out tasks for social good, discussing new ideas, trying new activities, or bettering mental health through social interaction.

How we built it

Gather Point was made primarily with Next.js, a framework for React designed for a smooth full-stack experience. TypeScript was the primary language used, and tailwindcss along with shadcn/ui was used for creating the styling of the app. Google Firebase was chosen for the database of the app, allowing for smooth integration of user authentication and simple feeding of stored data into the app. Google's Gemini AI was used for creating event recommendations for users. Framer-motion enabled the animated elements of our app pages. Node-geocoder-openstreetmap was used to query for addresses as users filled in event locations, and converted them into latitude & longitude coordinates for use on the map page. CesiumJS was the library for rendering the interactable map, while Google's 3D Photorealistic Map Tiles API was used on top of it to visualize the world beyond a flat 2D map view. 3D markers for the map view were modeled and exported as .glb files in Blender. The app's logo was designed in Inkscape, a free software for creating scalable vector format art.

Challenges we ran into

One of the greatest challenges we faced was getting the 3D interactive map page to work properly. CesiumJS is a powerful library for rendering maps, but there were a plethora of issues regarding rendering, occlusion, and being limited in how we could control certain behaviors. Another issue that stemmed from this was GitHub rebasing problems. With lots of work being done for the map and other parts of the app simultaneously, sometimes conflicting changes were made which were overlooked. This resulted in much time spent resolving conflicts when attempting to rebase the map page from the main branch.

Accomplishments that we're proud of

We're really proud of the interface and visual features found within the app. We made sure to take the time to polish each and every page to look as visually appealing as possible. Visual consistency was a big goal for us as well, and we were able to figure out a color scheme and style that we adhered to quite well. We also created our own logo for the app, which adds to the clean feeling and smooth experience when using it.

What we learned

This project served as a great learning opportunity for our members in learning Next.js. It proved to be a very valuable framework that helped keep things moving smoothly. It was also a huge learning experience for many of Google's Cloud tools. Google's tools were used for a number of our app's features, such as Gemini for the AI recommendations, Firebase for the database, and 3D Map Tiles for the photorealistic map rendering.

What's next for Gather Point

With this being a rather short Hackathon and our time stretched thin between the core functionalities of the app, we have a number of ideas to help improve Gather Point even further. One of the main features is deeper user authentication. By using either a student or state ID to validate identity of users, it would help deter things like bot accounts or unsolicited figures appearing at events. We can also flush out the app by adding features such as a discover page, that allows users to share pictures and videos of the events they went. More dynamic locations would be another feature to do added since although you can make events anywhere, the app itself is based in Ames and the way the events are fetched and placed would need improvements to handle the extra bandwidth.

Built With

Share this project:

Updates