The goal of the project is to implement a web based database application. This includes several steps:
Projects must be done in teams of 2-3 students, unless otherwise approved by the instructor. Projects must use a relational database with a minimum of five relations. Your application must access the database using SQL (e.g. with JDBC) and must demonstrate the use of joins. The application must run in a web browser and provide the user with a graphical user interface. Projects must be implemented using at least a 3-tier architecture. The user must be able to use the application without any knowledge of databases or SQL.
Projects may use HTML, XML, JavaScript, Java Servlets, and JSP in their implementation. Other languages and technologies may be used with permission of the instructor. Generally, only non-proprietary industry standards (e.g. JSP not ASP, CORBA not DCOM) will be approved. The use of code generation tools is discouraged and credit for code (java, html, etc.) produced with such tools will receive minimal credit.
The proposals should get you started thinking about the project, get organized into teams, and create a plan. The proposal should include:
These reports should be brief. The main goal is to identify your accomplishments with respect to your schedule and identify any obstacles that you have encountered. In some cases it may be necessary to revise the project plan as a result of the mid-project report.
Each team is required to prepare a brief (15-20 min.) presentation of their project. There is no specific format required, but the presentation should include a discussion of the problem you are addressing, a description of your project architecture, and a brief demonstration of your project.
The completed project must include:
The following are only ideas for topic areas, to get your thinking started. If you use one of these ideas, you will still need to refine the topic and decide on the exact functionality.
In this domain you might model entities such as movies, actors, directors, genres, playing times, reviews, etc. There are several sources of data available on the web that could be used to populate such a database. You could supply functionality such as finding specific playing times and theaters in a specified area by title, by director, or by genre. You could support updates to the reviews section of the database (allowing users to express their own opinions). You could provide personality profiles of people (e.g. the movies they like) and then recommend movies based on reviews by users with similar profiles.
Functionality similar to the suggestions for the movies domain could also be implemented in the books domain. You could also support buying and selling of used books and textbooks used in specific university courses.
The entities in this domain include apartments and their properties. Data might include number and kinds of rooms, rental price, bus lines, crime rate, distance from various landmarks, etc. The application could provide an interface for offering apartments for rent and for finding apartments.
There is an endless list of other interesting domains including: hotels banks, airlines, used cars, sports, and so on.