Inspiration

We are both college students who came into Georgia Tech as out of state students. One of the greatest challenges that we face is transportation, especially when we need to get out of campus. Services such as Uber can be very costly for an individual, and public transportation can be dangerous at nighttime. For this reason we were motivated to find a solution that would allow anyone, such as students, to easily find a carpool to get to locations without a car. We also wanted to make a solution that could connect drivers to other potential riders, so that such drivers would not be forced to drive alone. We were further motivated when we found that a great system for carpools allows the users to work towards decreasing carbon emissions, as less cars are used overall when people carpool.

What it does

The program has two primary functions: finding drivers and finding riders. After a user makes an account, the user can navigate to the search tab, in which they can search for car trips that drivers have already entered (indicating that they are going to a certain location). In the search, a driver can list their starting location (or general starting location) as well as a price for riding in the car. If a user is interested in a ride, they can check for more details such as contact information of the driver, date of the trip, and amount of people the driver can take. From the "further details" page, a user can choose to accept the trip, which will then send the information to the account of the driver, where the driver can choose to accept or decline the rider. If the driver accepts the rider, the driver and rider will then be able to view each others' contact information (an email) to set up a ride. As for drivers, after logging in, they can set up a ride and enter in information for where they are going, as well as parameters such as price, amount of riders, starting location, and event they are going to, and the ride will then be available for riders to search. All users have the ability to set up trips, as well as be riders in others if they choose to do so. Each user has a tab for rides they have been accepted in by the driver, as well as a list of trips that they will be driving with others.

How we built it

The web app is comprised of three main components: HTML/CSS and JS for the front-end, and python for the backed. The main purpose of the HTML and JS was to collect and prepare the data needed to be run through algorithms in the back end. This was completed by setting up pop up boxes that collect the information such as searches, usernames, and trip information, which are then formatted into JSON and sent as a API request to the back end. We also programmed the JS to detect if emails entered are real, as well as preventing empty text boxes. We decided to put a focus on good HTML/CSS, as we value simplicity as a part of this web app. We believe that the app's effectiveness also relies on how easy it is for the user to use, as well as look at. For this reason, we made a UI that is simple to understand and interact with. The backend is primarily written in flask, a python web framework. In the search function, we used an stop word algorithm to optimize result relevance. This means that users will not have to deal with irrelevant results. We implemented security through password hashing and secure user sessions. By using a web server, users can interact simultaneously and their data is saved efficiently on the server. Finally, the back end operates efficiently due to a lack of HTML processing or expensive backend operations.

Challenges we ran into

As this was our first hackathon, one of the greatest challenges we faced was coming up with a viable project in which we could find an effective and efficient solution using the skills that we currently possess. Our original ideas were very ambitious, however, we did not possess the skills to develop such solutions in the time allotted, and as a team of two, we needed to make sure we didn't take on too many tasks that could not be finished. We attempted to use backend databases, but found it too cumbersome with our current expertise. We were also limited by our lack of knowledge of git, and other programming languages. Ultimately, we decided to capitalize on the strengths of our team, and create a project in which we could give ourselves a healthy challenge. In order to do this, we spent a good deal of time mocking up ideas, and brainstorming. We decided on the project, when we all agreed.

Accomplishments that we're proud of

First and foremost, we are thrilled to have finished our first hackathon ever with a complete project. We were able to capitalize on each other's strengths, and build a product that we can stand behind. We are also proud to have been able to successfully implement a front end with a backend, and allow the front end to be simple. We put a great deal of work into our backend, and are proud that we were able to write algorithms that could create a searching system. As newcomers to the field of computer science, amidst having to learn how things such as APISs and inter-language communication works, we were able to continue working through hardships that we faced in the making of this project.

What we learned

One of the most valuable things we learned is teamwork. We learned quickly that projects on such a scale are very difficult to work on alone, and we learned that effective communication with teammates allows a product much more useful than any one that can be made alone. We also learned how to create a software project from start to finish, using services such as github. We also learned how web servers work, and how to use them in our own projects. Lastly, we learned the importance of storing data securely, and how to retrieve such data when needed.

What's next for HitchHiker

We have several things to implement in the future of HitchHike, some of the future features we plan to include are as follows:

  • Using Google maps to modify search results based on proximity
  • Creating a system for two-factor authentication for accounts that are set up
  • A verification system in which a user can take a photo of event tickets to prove that they are going on a trip that is entered
  • A in-site chatting system for drivers and riders to interact
Share this project:

Updates