The objective of this project is an application of software engineering principles and techniques to the development of a Internet software system. It covers various aspects of object-oriented analysis, design and programming. It also provides an opportunity for a hands-on experience with client-server Internet programming using Java, JavaScript, CGI programming, XML and HTML. Mastering the materials in class as well as the ability to learn new things quickly will be essential for success in this project.
This page is copyright and if you use any of the original ideas in the future in any commercial way. Please email webmaster@openloop.com for approval.
As e-business is moving to main stream in the business world, the need to represent information in a structured way becomes very important. Hypertext Markup Language (HTML) is first developed in 1989 by Tim Berners-Lee at CERN. It then becomes not only a standard but also an ad hoc fashion by numereous programmers and researchers around the world. However, a typical HTML document is just a string of text separated by tags. The string of text specifies what to display, while the tags specify how to display it. In other words, a HTML document is designed for "display" only. What the data means and how the data is grouped together cannot be represented in HTML. This is where XML will come in. XML not only stores the content of the information, but also the meaning of it. XML "helpers", such as DTD, XSL and XLL, make grammer checking, page styling and link information, more flexible and accessible. Thus, XML could make your web site's information richer as well as enable data intelligent operations. (Please refer to class notes for more technical information.)
This project will make use of XML to build an intelligent and information rich web site.
Two kind of data will be inputed into the web site, they are "Profile" and "Online Shops" information. Profile are similar to a resume with a restricted input format. Online shops are online store information in restricted input format. Administrators will enter the data through a Java interface, the Java interface will send the inputed information to a Java server which then stored all the information in XML format. When users "login" and access the web site anywhere in the world, they could get to either the "Profile" and "Online Shops" information. Either of this information will be stored in XML format and the Java server will generate the information on demand to the users. As an user, they could specify different representation of the data and use any of the intelligent function (such as searching, graph porting, etc) provided.
The Administrator should at least provide the following features:
- Java/JavaScript/DHTML interface to input both "Profile" and "Online Shops" data.
- Additional interface to request additional information for "iXML features"
- A data flow monitor must be provide to show the administrators where the data is at a given point.
The following is the minimum list for iXML features
- Access is actually passing through the web server (no local access)
- Logon feature asking for userid and password
- All features MUST take advantage of XML. (So, plain database query will not be accepted)
- Intelligent searching with at least 4 factors. For example, give me all the profiles who are male, change jobs between Jan 99 to Dec 99, graduate in an university from Mid-west, and know C++, C, Java and JavaScript.
- Present a view with general grouping of information. For example, how many people are male/female; how many people know C++, Java, etc
- Present options of representing data in different views. For example, in HTML tables; Bar chart, spreadsheet format, etc
This system is supposed to be developed according to the software lifecycle taught in class. Good software engineering principles must be followed. In particular documentation must be good.
As the whole class will be working on similar projects, relative grading will be used. In other words, all the projects will be ranked within the class and points will be assigned accordingly. A lower point bound will also be used to ensure that some of the core features are implemented in the project. (For example, 150 points for base features, 100 points for extra features)
This is not an "easy" class and the project is an essential part of the overall grade. If you study the grade distribution of past semester, you will find out there are 10 A, 3 D and 6 F. People who did not deliver the project well enough could really hurt their grade as the project contains more than 50% of the overall grade.
Avoid:
On the bright side, most of the students in the A range did really well in the project. So, there is no upper bound for an A. (In other words, I do not limit the number of A in a class.)