|Syllabus||Schedule||Project||Evaluation Checklist||Handouts||My home page|
The project this semester is to design and build software to “uber-ize” some activity. Consider how Uber changed the user experience for hiring a car when compared with a cab. To hire a cab, we have to first find one. In a crowded city, we can wave our arm at the street and a cab will soon come by. At an airport, we wait in line for the next cab to appear. At a fancy hotel, we ask the desk clerk and a cab quickly appears. If we are in the suburbs, we find a phone number for a particular company, then call to schedule a pickup, which may take up to an hour (typically 45 minutes from GMU or my house). Once in the car, we tell the driver where to go, and often give directions during the trip. We pay with a credit card, if the machine works, or cash. Twice I’ve had to drive to an ATM because the card reader was broken and I didn’t have enough cash.
Uber is quite different. We create an account (once), and attach a method of payment, either a credit card or paypal (yay Elon Musk!). When we need a ride we open the app, enter the destination, and are told when a driver will appear. It’s the same process no matter where we are, and the arrival time is usually 5 minutes or less, even in distant suburbs. We also can rate drivers and they can rate passengers.
Uber drivers also earn less money, drivers are not licensed and their cars are not subject to safety inspections (beyond what is required for our private cars), the company does not own or pay for maintenance on the cars, and the company does not pay road usage fees. These shortcuts save money for the customers and allows Uber to make more money than a taxi company. These economic considerations are NOT important for your project. We only care about the user experience, regardless of cost and ethics.
Your project this semester is to think of a service for which the user experience can be changed by software. Then design the UI to support that service and build a working prototype that you can demo to me and possibly your classmates.
You may not simply copy Uber’s UI. You can use some of its ideas, but create your own design. You may discuss possible services to Uber-ize with your classmates or anyone else. You may also use any technologies you want and design the UI and software as you wish. You are free to make as many assumptions and decisions as you like within the parameters given. Be creative and have fun!
If you do not like this project and have your own idea, you may choose to suggest your own project. See Alternative Project below.
More freedom: You may deploy your system on any computer, and build your UI with any software support or package. Your interface may be of any style (mobile, WUI, GUI, menu, command line). The important thing is that you follow the principles we discuss in class. You may use Unix computers, PCs, Macs, or mobile platforms, and you may use J2EE, PHP, Java, Motif, X, Powerbuilder, VisualBasic, HTML, or whatever languages or development platforms are comfortable. For those who wish to use J2EE or PHP, I will arrange for accounts to be created on VSE’s J2EE application server. If you wish to use a database, we can make arrangements to use the VSE oracle server or mysql.
You are responsible for making your project available to me for a demo ... if I cannot access it, you will lose points. I must be able to see your project run on campus (no house calls). You may make it available over the web, through the campus network, in a campus lab, or as a last option, bring a laptop to my office for a demo. I will not install software on my computers; if you use a PC, you are responsible for finding a PC to show me or installing it on a PC in one of the labs. If you need, we can probably arrange for a dedicated PC in one of the VSE labs at the end of the semester. You are also responsible for ensuring that any support software you need is available.
I encourage you to work with one partner, although you may also work alone. If you choose to work with a partner, the requirements will be the same, and I will expect each partner to submit a one page evaluation of the other partner at the end of the project. These evaluations may be used as part of your grade determination.
This project will have six milestones The due dates are listed on the course schedule web page). Note that the first four are fairly small and not time consuming.
The final short written report must include:
The project suggested here has the advantages of being small enough so that you can understand the system in a reasonably short time, being complex enough to present a reasonable interface challenge, and not requiring a lot of software underneath the interface. However, you may propose a different project, provided it is of a reasonable size (not too big and not too small). Note that grading is based entirely on the usability of the system; you will not get credit for developing large amounts of software that is not part of an interface, and you will not get credit for learning new technology to build your interface. Important: Every milestone delivery needs to include 1 or 2 sentences reminding me what your project is.
For the next class, give me your project choice as a statement of intent. Please see above for the contents of this document (one page with a bullet list should be enough).