Proxamie

Proxamie is a web application my team and I developed for the Meteor Hackathon 2021. It doubles as a hangouts scheduler and contact tracer (in that it will track the people a user met up with in the past two weeks upon scheduling a hangout).

The inspiration for this came from the fact that the COVID pandemic has increased social isolation among the general population. People no longer are able to spontaneously hang out as they once were (for example, students meeting up during breaks or after class). Since many people, especially students like us, conduct their daily lives from home, we felt that there is a greater need for a new way to (safely) schedule events during COVID. For example, in the event that a hangout is scheduled with more than 10 people, our application will issue a notice the user is breaking CDC guidelines.

Our overall mission was to help friends meet up together like they once were able to, returning to a sense of normalcy while also abiding by COVID-safety measures.

My Contributions

My contibutions to this was with both the front and back-end as well as deployment. I primarily worked on the landing page and layouts of the Profile page, the Group page, and the navigation through the site. I also implemented the Profile Calendar, Group Availability Calendar, and the Add/Edit Interest Collection and pages. I worked closely with Alyssia and Abdullah to create helper functions to reformat the data they fetched from the collections and display it on the client-side. This is how I was able to display the interests, profile & group name, group members, and the calendar gradient colored based on how many people would be available on a certain date.

Difficulties

Other than the 5-day time limit turning out to be way too short for us to implement everything we wanted to, we did run into various technical difficulties. A funny little bug we had for about a day was a child modal refusing to close. Maybe it was because we were running on very little sleep, but we could not figure out how to pass props from a child to parent when we were already passing it from parent to child (hint: you can’t). Obviously, the answer was to pass a function from the parent to child, which the latter calls to change the parent’s state of the modal. We eventually solved that once Dylan and I caught up on our sleep. Many of our difficulties could have been solved that way instead of spending a few hours (an exaggeration, but you get the gist) trying to debug the code and test alternative solutions.

We also eventually figured out having a second pair of eyes look over your code is incredibly helpful. For example, Alyssia could not figure out why a particular variable in her Meteor method was returning undefined. However, once she requested I look at the output, I saw that what was being returned was an array of arrays and not a single array like she was expecting.

Reflection

This was our first hackathon for my group members and me. It was 5 days, so the development was intense, my members and I became close friends, and I became a nocturnal being. After creating the Interests collection, I learned quickly what I did like and I what I didn’t like. Thus, I learned to rely on my peers when it came to my unfamiliarity with the subscriptions and Meteor methods. Whereas they would implement the subscription and fetch from the database, I would reformat that data to display it on our UI.

Perhaps due to the time constraint, it felt like we were all in sync with each other, which is a quality I haven’t experienced in earlier groups. I also recognized that I (and my fellow CS peers) have matured a lot not just as programmers, but as people as well. We are more serious and eager to communicate with one another, not afraid to ask if we need help or throw out potential solutions.

Overall, I (still) have an amazing team and I’m excited to do the HACC with them.

Github Repository

Deployed App