| EIW 2003 Term Project Requirements |
|   Description   |   Implementation Requirements   |   Other Technologies   |   Deliverables   |   Grading   |   Notes |
The term project is a significant part of your grade! Make sure you read these requirements carefully and ask Dave or any TA about any parts you don't understand.
Term Project Proposals are Due Oct 22nd (in lab)
The term project is a project that utilizes a variety of the technologies we have been using throughout the semester. You will build and document a web site that supports e-commerce (or something like e-commerce). The requirements include a list of technologies you must use in the implementation of your web site, a description of the documentation that must accompany your project, a description of the scope of the project, and a list of due dates.
| Project Description and Scope |
We expect a professional looking web site that supports a high-level of user interaction. A general description of what is expected follows, but feel free to extend/modify this description when developing your project proposal. If we don't think your project is big enough or is too big, we will let you know as part of the proposal review process. Feel free to ask questions while developing your proposal...
You should design and develop a web site that allows users to log-in and purchase goods or services. A list of goods and services must be available to the user, as well as a record of the customer's previous purchases (if any). There should be some mechanism for finding items that are for sale, that is, some way to search for items. It is not necessary that your implementation includes thousands of items for sale, but it is important that your system could support thousands of items.
Your site should include customer support services, such as account management (changing name, password, address, whatever...), transaction history (reviewing prior transactions, possibly getting status on current transactions).
A shopping-cart type interface for purchasing items should be supported. The idea is to make it as easy as possible for users to make purchases - they should not need to type item names into a form to make purchases - a few mouse clicks should be all that is necessary.
You should provide some way for users to get help with any part of your web site. You don't need to get carried away with the content of the help documents, but you should provide a manageable mechanism for providing detailed help with any part of your web site.
You should consider the management of your web site! If this was a project for a real company, think about how the company itself will interact with the system. How are the databases updated (adding new items, changing prices, updating order status, etc.). Ideally your project will support special services for the people who will maintain the web site.
You should think about special services that might make your web site attractive to users. For example, provide a message board or chat rooms so users can communicate with each other, or support product reviews written by users of your site.
Finally, you must do something we have not talked about in class! Find a new Javascript trick, use a fancy web tool to provide the content for part of your site (Flash!), use another language, etc. The point is to convince us that you can learn and apply something new on your own.
.| Implementation Requirements |
Javascript: Your project must make use of Javascript in a non-trivial way. One good approach is to add Javascript to web pages to make them easier to use - the typical example is form field validation. I'd like you to do more than simple form-field validation...
Perl CGI or MS ASP You must make use of either Perl based CGI programs or ASP scripts in your project. You can use other server-side languages (PHP, Python, Java, etc.) or high-level dynamic document creation tools (Flash, Cold Fusion, etc.), but you must use Perl or ASP for part of your project.
Database Connectivity: You must make use of a database system - we will go over using Perl/ASP to connect to a database in class, but feel free to use whatever you want.
Sessions: Your site must support the notion of a session. HTTP cookies is the most used mechanism for this (languages such as ASP and PHP hide these details from the programmer, but cookies are involved).
E-Commerce: Your site should support some functionality like e-commerce, although it is the basic principals of session-oriented transactions that is important, not the idea of buying something. For example, a calendar system would be fine even though there is nothing to purchase.
As part of the e-commerce like functionality of your web site you must consider the maintenance of the system. For example, how are new items (to be sold) added to the system, or how are prices changed? How does a transaction make it to the folks who ship the goods? These issues need to be explored as part of your project. It is not necessary that you provide web-based maintenance facilities, but it is important that you address the issue in your writeup.
| Other Technologies |
Feel free to use technologies we have not discussed in class! You must use the technologies listed above, but you can do part of your project using anything else.
Feel free to borrow code from anyplace you can find it! You may not copy an entire web site, but you are encouraged to find and collect parts from anywhere. You are responsible for understanding every part of your project, so don't include any documents/code that you don't understand. You must state (in your documentation and in the code itself) every part that has been borrowed, including where you got it from and a brief description of what it does. There will be serious penalties for any code that is found to be borrowed and is not documented as being borrowed.
| Project Deliverables |
Your project proposal must be submitted by Oct 22nd (as hardcopy). The proposal must include the following information:
A list of group members. Groups MUST be 3,4 or 5 people. Please do not ask if you can do a project with fewer or more people! If you don't know anyone and need to find a project - let Dave or a TA know and we will find a group for you to work with (the sooner the better!).
A description of your web site. This should be a technical description, not something an end-user would read. This description should include:
I would expect no more than 2-3 pages for a description of your web site.
A proposed assignment of work to team members (a description of who will do what).
A great sounding name for your web site
Your group will present your project to the class during the last few weeks of classes. Assignment of presentation dates will be done based on when the proposal is accepted (once your proposal is accepted you can pick any free time slot - so get your proposals done soon!). This presentation will include a live demonstration of the web site, and a brief technical description by each team member of the parts of the project they worked on. Each team member is responsible for having a good understanding of the entire project, and a complete understanding of their part.
During the presentation, Dave, the TAs, and the rest of the class will be allowed to ask questions to make sure the team members understand the project. In other words, if you claim that you wrote the code for part of the site - be prepared to show us the code and describe any part of it!
You must submit your project (all the files necessary to run your web site) and the project documentation by the last day of classes.
All program files must include comments that describe the code.
Your project writeup should be a technical document for other web site developers, not a user's manual. You must provide a description of how you implemented each part of your site, including the names of the files that make up your site and what part of the system each file belongs to. Your description should be detailed enough so that a competent developer would be able to change/add new functionality without hunting through all your files to find where each part is implemented.
You must include a description of who did what in your writeup! Each individual team member must write a description of what they did (no more than one page per person) as part of the writeup. Make sure this part of the writeup is clearly labeled with the names of the team members!
| Grading |
Grades will be assigned to an entire project. This is a change from how it has been done in the past - the issue with individual grades is that it is often impossible to tell who really did the work and who didn't. We will do our best to identify individuals who do not make any significant contirbution to a project, these students will not receive a grade (we will not treat them as a member of the group). Each student is expected to contribute to the project and to have a good understanding of all parts of the project.
Every student is expected to contribute some programming to the term project. We do not consider HTML to be programming. Feel free to have one person with primary responsibility for providing the HTML (the look & feel) of your web site, but this person must also do some non-trival programming.
If you attempt to tackle a project that turns out to be too large to complete - this will be taken in to consideration during grading. I'd much rather have you work on a project that is too big than one that is too small!
Your grade will depend on a few things:
| Misc. Notes |
Feel free to work with people in other sections.
Feel free to merge this project with projects from other classes. Make sure the project meets the requirements listed above (or is explicitly approved by Dave or a TA). You should also make sure this is acceptable to your other Instructor!
Do something you will be proud of!
Contact Dave or any TA to discuss questions or any ideas you have.