COP4710 Database Systems (Fall 2017)

Instructor: Peixiang Zhao

| Syllabus | Announcement | Schedule | Assignment | Project | Resources |

Building a Database-driven Web-based Information System

Group Information


There is a semester-long course project of building a database-driven, Web-based application for a real-world domain of your interest. The project will be done in several stages: First, you will identify an application of your interest that requires database systems as backends. Then, you will design your underlying database and key functionalities you may provide with the database. You will create an actual database using MySQL, for example, and populate the database. After that, you will write queries and modifications on the database to support your application logic. Finaly, you will build a Web-based interface to support readily interaction with your real-world application. You will demo your system and possibly showcase it to the whole class.

This programming project takes up 30 points out of 100 for your total score. You have another option to implement a simplied project without Web interface and access, with 5 points deduction. Namely, your highest score will be 25 if you choose this simplied option without Web programming. The programming project is a multi-stage project and for each stage, you have delivables to submit. You cannot proceed to the next step until you get approval (with comments and suggestions) from TA.

Stage 1: Group formation

You must form a group of one to three students (more than three is not allowed). Create a cool name for your group and include student names, fsuIDs, emails information. If a group contains more than one student, you are tied up throughout the semester. If one happens to leave/drop the class, the others should be on your own. So choose your groupmate carefully!

Note: If you have difficulties forming a team, here are the solutions: 1) go to class and talk to people in the class; 2) ask *TA* for help.

Stage 2: Application description and ER diagram

Your group identifies an application you would like to manage with your database. Please pick an application of your interest, as you'll be working with it for the entire semester. Your application should be substantial, but not too complicated.

You need to submit a project summary including:

You should submit the ER diagram of your application domain (the minimum number of entities is 3, so is the number of relationships), plus English descriptions on the assumptions you make.

Stage 3: Development Plan

Each group must submit a detailed and well thought-out development plan including the following:

Note: If you received a "Not Approved" review for stage 2, you need to address the staff's concerns in your Development Plan.

Stage 4: Demo and Final Report

Each group must demo its application. The demonstration takes 15 minutes, and will contain all of the following:

Clarifications on advanced functions An advanced function should be: (1) useful for your users; (2) technically more challenging than the basic functions; (3) creative or novel with respect to other similar applications in your domain. Examples: It's an advanced function because of novelty: as an example, there was a project that archived all the weather forecasts from several major weather sites. One of its advanced function predicted which weather site is the most accurate, given the current weather state. It's an advanced function because of implementation. As another example, there was a project that does recipe search. One of its advanced function is to recommend recipes based on the user's dietary constraints. Users enter their constraints, such as calorie intake, ingredient preferences, etc, and the function returns a list of recipes that meet the constraints. The novelty comes from their search implementation. The search is an exhaustive search over 1000+ recipes, involving multiple table joins and pair comparisons, and they optimized this search with indexes and views.Essentially, advanced functions are opportunities for your group to be creative and fun. At demo time, your group needs to make a case why your functions are advanced.

Report requirement: Please hand in your final project report to the TA during your demo. As a complete project report, you need to include all the detailed contents of your project and write it as a complete story. The report is expected to be single-column, 5-10 pages in length (the font size is 10-12pt). You need to address the following key components in your report: