HitMeUp is a scheduling app for friends to organize times to meet up and hang out. Users can create events (or even import classes as events from MyTritonLink), add other users as friends, and see what times are available between them.
Hitmeup was developed for my software engineering class. We had to develop an application that university students would find useful, and it was a long journey to get to the final product.
Before deciding what project we were going to be doing, there were many candidates we considered. Ideas included gamifying the education process, matching students to tutors, and others. In order to objectively decide what project would be best to pursue, we created a decision matrix to quantify the tangible benefits of each idea.
We quantified the benefits of each project on several dimensions, like potential for growth, ease of maintenance, and skill fit. We multiplied each of the scores by the appropriate weights and tallied up all the scores to come to the final decision of “Scheduler,” which would become HitMeUp.
To begin work, we had to come up with a firm set of requirements. We created “user stories,” which are small units of work representing a user interaction scenario with our application. These were the units of work under which our team got things done.
These user stories formed the requirements for our application, and it was important to write them from the perspective of the user. Even the language was important — starting each user story with “As a user…” helped us get into the proper mindset to tackle the problem.
Another thing we had to consider was architecture. What technologies should we use? For the backend, we decided to settle on what everyone was familiar with: Python. We used Django (a Python web development framework) to develop our website. Many of the technical leads were experts in Python, so it made troubleshooting extremely easy.
For the front end, we decided to try out React.js. Many of our group members had experience with Angular.js, but it was for the most part negative and confusing. I had briefly trialed React.js in a test application and it worked fantastically, so we decided to take the risk of using a framework not many of us used. It paid of pretty well; not only did our overall development experience go very smoothly, but we all gained an additional skill.
In the end, our team created a satisfying final product which was reliable, well-tested, and feature-filled. We learned a lot along the way about the right way to design and build a web application, as well as the right way to work in a team.
The final product can be viewed here: http://sudowoodo-hitmeup.herokuapp.com/