...
Anchor | ||||
---|---|---|---|---|
|
Design Overview
Website
Our web app consists of an interface with 6 tabs: Carpool Search, Next Date, Swap Dates, My Full Schedule, My Carpools, and Pending Groups.
...
Anchor | ||||
---|---|---|---|---|
|
Implementation Overview
Both our web app and mobile app were implemented with HTML, CSS, JavaScript, and jQuery on the front end; we also used Twitter Bootstrap to make our design look more clean and professional. For the back end of the web app, we used Python because the majority of the team had substantial experience programming in Python; we chose to use the Django web framework because it is widely considered to be the most popular web framework for Python, and we thought it would be a useful learning experience. We opted not to implement a back end for our mobile app because we knew we would not need it in our tasks for user testing. For version control, we chose Git because most of the team had some experience with it, and it did not have a steep learning curve like other version control systems such SVN. We deployed our app with an MIT scripts account because it would be easier to set up and would also be free of charge.
We used Django to create our SQL database, which we used to keep track of information for users and carpools, amongst other relevant data. We then used the Django template language in our HTML file in order to display the data we pulled from the database for each user. The calendar was implemented with FullCalendar, a jQuery plugin by Adam Shaw. For displaying the maps and directions for each carpool, we used the Google Maps API.
Anchor | ||||
---|---|---|---|---|
|
Implementation Problems
Our form submissions don’t work. We had realized that we would need to use AJAX to prevent page refreshes upon form submission. We had made significant progress towards implementing this; however, we discovered that pursuing the AJAX route would require us to rewrite all of our Django template code to HTTP Requests. As the deadline was quickly approaching, we did not have time to do this. Instead, we opted to make our front end function as though user’s actions had succeeded despite the changes not showing in the back end. This temporary, hacky solution could potentially cause confusion in user testing should the test user decide to logout and then log back in because their actions were not saved in the back end.
...