Syllabus Schedule Project Evaluation Checklist Handouts My home page

SWE 632: User Interface Design and Development
Project Assignment
Fall 2016

Technology is the knack of arranging the world so that we don't have to experience it.
- Max Frisch (Swiss playwright)

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.

Project Requirements and Schedule

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.

  1. First you must submit a one page statement of intent that gives your name, your project, what development computer you plan to use, what deployment computer you plan to use, and what software you plan to use (HTML, CGI, Java, etc.). (Note that this is not a contract—that is, if you change your mind later, that is okay, just let me know.)
  2. Turn in a short user profile containing a description of the users of your system. This description should have two components. The first should describe whether your primary users will be novice, knowledgeable intermittent, or expert. This description should consider the users in terms of syntactic, task semantic, and computer semantic knowledge. The second component should consider characteristics of the users that we discuss in class, including work experience, computer experience, age, etc. Please refrain from including information about design; think of this as part of the requirements. Design will come later.
  3. Submit a statement of interface goals, which will (1) describe user interface goals in terms of Shneiderman’s five criteria, and (2) describe all the features you plan to implement in your system. The second part must define all functionalities that you plan to implement in the system. Please refrain from including information about design; think of this as part of the requirements. Design will come later.
  4. Build and submit a very small and simple technology demonstration interface using the same platform, implementation package, and interface style that your final project will use. The purpose of the technological demo is to ensure that you can use the software you plan to use and make it available to me. This is NOT a prototype of your project.
  5. Submit an initial interface screen design on paper—the screens and a description of the interaction. Include a copy of the statement of intent and the user profile with the design. (These documents will give me context of your project.)
  6. Finally, you will turn in a short written report and either provide me with a location where I can evaluate your project or demo the project to me. Note that the project and final report is due a week earlier if we need to arrange a meeting.

    The final short written report must include:

    1. Your name or both partners’ names
    2. A one or two sentence description of your project
    3. A paragraph describing the software you used to build your interface
    4. A short description of how I can use and run your project
    5. A short description of the software design
    6. Any notes or problems that I should be aware of (including things that don’t work)

Alternative Project I

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.

Subject Choice - Statement of Intent

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.

The grading will be approximately:
User profile   5%
Interface goals   5%
Technology demo   5%
Designs 10%
Final Submission 75%
     Interface Quality     40%
     Features/Functionality     25%
     Demo     10%