Inspiration:

When we first arrived to campus as freshman, we quickly realized how difficult it is to meet new people. Exploring campus was a daunting task. We wanted to create an application that allowed students to invite others to events happening around campus. Now if you need one more person to play in your pickup basketball game or want to have a crazy party, OpenInvite allows you to do that.

What it does:

Currently, we have a website where students can see all the events that have been inputted by others and themselves on the home page. Students can then filter events by using the dropdown menu in the top right of the screen. Students can also hover over map-markers to see a user-prodvided description of the event. They can also log into the website using Auth0, to which they can then create their own events which can be seen on the map.

How we built it:

We used Flask to created a website that served as the "frame" for our website. We then made a script, using javascript, which interacted with the Google Maps API which has the ability to display a map on screen, as well as make markers on the map. Currently the map is centered around Madison, WI. After the script, using Python, more specifically pymongo, to connect with MongoDB, we made it so that all events created by users are stored in the "Events" collection in the OpenInvite Database. This way, everytime the page is reloaded, the collection is queried and the events are displayed based on the current time to display ongoing events. Finally, we created the logo and custom icons for the different types of events to make our website distinct.

Challenges we ran into:

The most notable challenges was figuring out the manner in which we should connect the script with MongoDB. Having never used MongoDB before, it was difficult to learn how to connect it with the html files and the javascript file. Making this connection work within flask proved to be a difficulty, but as a team we brainstormed different ideas and were able to create a working solution, the implementation of Flask.

Accomplishments that we're proud of:

We are proud that we were able to make a complete product within the confines of the timeframe. More significant accomplishments would be that we were able to implement various frameworks and technologies into one application, something some of us had never done before. Especially the page in which users can create events which involved almost all the technologies: making the page in html, implementing using flask, creating an input in the database, and querying the database to create a marker using the javascript.

What we learned:

One important topic we learned is to make sure our idea is not too broad so that it cannot be implemented. Our original idea was interesting but after spending a decent amount of time, we realized that the scope was simply too big for the time frame, leading us to transition to OpenInvite, which proved to be within our capabilities given our existing knowledge. We also learned a great amount about working with databases. For example, learning about collections versus databases in MongoDB, or understanding how the query function returns a Cursor object.

What's next for OpenInvite:

For OpenInvite, we have three ideas planned in the future. The first feature is the ability to RSVP for events. Currently users are able to see events but cannot let the owners of the event see they are interested. When we implement this, makers of events will be able to see how many people are interested. The second feature we will implement is automatic address detection. Currently users have to manually type in the address and also make sure it is the correct format. We are currently in development of using this but were unable to get it working before the deadline. The third feature will be the ability to click on a marker which will get directions to the event. Users can currently see markers on the application but cannot get directions. They would have to open a separate maps application and manually type in the address. With this feature, we would streamline that process for the users.

Share this project:

Updates