| WebSys Fall 2006 Term Project Requirements |
| WebSys Home   |   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 25th (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).
| 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...
Part of your server-side code must be based on PHP, but feel free to use other languages/tools as well (it's best to check this out with Dave!).
Database Connectivity: You must make use of a database system - in class/lab we will be using MySQL, but you can use whatever you want.
Sessions: Your site must support the notion of a session. HTTP cookies is the most used mechanism for this (although PHP hides these details from the programmer, but cookies are often 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 25th (as hardcopy). The proposal must include the following information:
A list of group members. Groups size should be 3,4 or 5 people, if you want a group smaller or larger you must ask Dave first. In general, the more people involved, the more we expect. 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 4-5 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
There will be status meetings (during class) where each group will briefly describe the status of their project (no more than 5 minutes). Dave will announce (and post) the dates of status reports for each team, so you will in advance when you are expected to provide a status report.
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.
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 (everyone on the team will receive the same grade). We will do our best to identify individuals who do not make any significant contribution 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.
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 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.