Flash Project 3: Carpool Matching Database

Due

11:59pm, Friday November 3nd, submitted to Blackboard under Assignments.

Submissions between 11:59pm, Friday November 3rd, and 11:59pm Monday November 6th will incur a 1/2 point penalty (out of 10 points).

Description

Carpooling is often suggested as a solution to traffic congestion, by encouraging people to share vehicles and reducing the number of single-occupancy vehicles on the roads. However, it can take a considerable amount of effort to locate a suitable group of people who commute from and to similar places, which result in most people opting for the convenience of a personal vehicle. One way to alleviate this inconvenience is create an easy-to-use, computer database for carpooling on which people interested in carpooling can look up others with similar commuting needs.

Project Requirements

This project is a two-person group project. For this project, you are to implement a carpool-matching application, with the design specified in the following sections. You should agree on a design together and develop a single application. The work, however, should be divided such that each person can work on separate parts of the project, e.g.:

Additionally, provide a short write-up (PDF or Word document) that describes:

Outline

You should use the database provided in the Appendix.

Design Details

The application is designed to be widely accessible, therefore it shall be no larger than 640-by-480 pixels. Also, users must be able to access help from any screen (e.g. a help button which reveals short instructions about the current screen); and sign-out from any screen after signing in.

The first set of screens for this application are the sign-in screen, as well as account management screens. The requirements follows (as well as some ideas which you may use):

Sign-in screen
Carpool Application Example Sign-in Design

On first entry, users shall be presented with a sign-in screen. This screen should contain the name of your interface and a brief introduction, i.e. a welcome screen. Also, users should be able to enter their username and password to sign-in to this site. Your application will have to verify that the username and passwords match what's in the database, and display a useful message if it does not.

First-time users should have an option of creating a new account (described next).

Create new account

To create a new account, first time users would have to provide their name; sign-in username and password; and contact information (email address and phone number). The username has to be unique, i.e. users have to pick another username if the previous already exists in the database.

For liability reasons, it is also important to inform users that by submitting their contact information, they are willing to share their information for the purpose of matching carpools. Your interface should be designed to ensure that users are properly informed thus (e.g. an unskippable audio instruction, or a text-box which users are forced to scroll through).

Change user information

Users who already have an account should be able to change their contact information. This screen is very similar to the "Create new account" screen described above, with the exception that the username cannot be changed. (Hint: with careful planning, you can reuse the "Create new account" screen).

After signing-in, users should be able to perform two tasks:

  1. create a new carpool listing
  2. search existing carpool listings

These would allow users to either start a carpool, or look up an existing carpool. A listing contains the following information:

  1. providing a ride, or requesting a ride
  2. destination address(i)
  3. arrive-by time
  4. start address
  5. day of week
  6. number of persons to give rides to/wanting a ride
  7. expiration date

Searching up a listing should provide users with the contact information of the person who created the listing; users can then make arrangements for the carpool privately.

You should design screens for these tasks according to HCI principles as you've learned in class. Below are the specific requirements for the interface, along with an example design which you may use for ideas:

Create listing

Upon signing-in, this screen should be the first screen that users will see. From this screen, users should be able to enter information for a new carpool listing, and submit it. A new listing should be created with an expiry date two weeks from the the present day. Upon submitting a new listing, the new listing should immediately be shown to the users such that they can confirm that it is correct.

Carpool Application Example Listings Design

Example: The very top of the screen contains a tab-menu with two items: "New Listing" (which is selected), and "Search". Just below is a form where users submit a new listing. The lower half of the screen contains a list of previous listings that the users have submitted, with the most recent (expiry date furthest from today) towards the top of the list.

Search listings

From this screen, users may look up posted carpool listings by entering a set of parameters to match with (start address, end address, day, arrive-by time, whether giving or needing a ride). The results should be displayed in a list with the closest matching listing at the top. Also, users should be able to get the contact information from the poster, such that they may then arrange the carpool logistics privately.

Example: Users can view this screen by selecting the "Search" tab on the tab-menu. Users should be able to search by entering the start address, destination, day, arrival time, and whether they are giving or need rides in a form on the top-half of the screen; the system should display a list of closest matching listings in the bottom half. Each listing will also have a link on the poster's name, which users can click on to reveal a pop-up that displays the poster's contact information.

Note

  1. For simplicity, addresses in this projects are specified as X-Y coordinates.
  2. A carpool listings database is provided in the Appendix.

Extra Credit (10%)

When users are browsing through the carpool search results, it is often more intuitive to be able to see the results on a map. For extra credit, add a map display to both the "Create listing" and "Search listings" screens alongside the textual list. You may determine the most appropriate way to display the map, as well as the information that you deem most useful for users (e.g. own addresses and carpoolee's adresses). Grading will be based on the novelty and usefulness of your design (and HCI principles).

If you choose to do the extra-credit problem, be sure to describe the design in your write-up. As for a map, one is provided in the sample project.

Grading Criteria

The grading for this assignment will be based on:

  1. Completeness: (60%) Does your program fulfill the specifications?
  2. HCI Principles: (20%) Was your interface designed according to HCI principles? Be sure to point it out in your write-up.
  3. Aesthetics: (10%) Was your use of fonts, colors, animation, and so forth aesthetically pleasing (e.g. readable text)?
  4. Write-up: (10%) Did you complete the write-up requirements?

Coding style is not graded. Nonetheless, as with any coding project, it is a good practice to maintain good coding style as it to ease program understanding, and reduce the likelihood of errors. Your project-partner will also appreciate this practice when you have to integrate the two parts of your project.

Appendix

Use the provided database, which contains a generated list of users and carpool listings. There is a sample Flash project (carpool.fla) which demonstrates the use of the database, as well as a set of modules (*.as) comprising the actual database itself. Please take a look at the actions in carpool.fla, and the code in carpooldb.as.

The database provides a few functions to search for users and listings, as well as two unimplemented functions to create new users and listings. You have to implement these for your project.

Generated users in the database have usernames such as "logan5" or "jessica6", with all passwords set to "password" (we have silly security policies). There may be a short delay at the beginning due to loading.

Do not change the file carpooldbinit.as. The database is generated here, and I may rely on the data to test some of your screens. You may, however, use it as a reference to help you implement other parts of your project.