|Syllabus||Schedule||Project||Evaluation Checklist||Handouts||My home page|
The project this semester is to build a crowd-sourced Christmas light viewing program. One of my family Christmas traditions is to drive around neighborhoods looking at outside Christmas lights. Some are boring, some are beautiful, some are tasteful, and some are spectacular. Last year we found some reviews online that directed us to some homes with particularly “interesting” decorations. But these reviews were primitive, poorly organized, and not particularly usable.
Your project is to design and build software to help people find streets and homes with interesting Christmas lights. This could be a mobile app (location services could help), a web app, or some sort of stand-alone desktop program. Users should be able to add locations and vote for locations that already exist.
You have a lot of freedom in how you design the UI, the software, and what functionality is available. You also have complete freedom to choose technologies to use to build your UI. You are free to make as many assumptions and decisions as you like within the parameters given. Be creative and have fun!
If you really hate Christmas lights, you have two alternatives. One is to adapt this crowd-sourcing project to something else that people like to visit; like parks, tourist attractions, mansions, etc. Let’s not do restaurants or commercial stores—that’s been done already. If you choose this option, you must describe it in your statement of intent for me to approve.
You may 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. 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. We can 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. You should include your target hardware and operating system, and any support software package you intend to use. This does not have to be a long formal proposal ... please keep it brief, such as a list on one page.