COP4710 Database Systems (Spring 2024)

Instructor: Peixiang Zhao

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



Building a Database-driven Web-based Information System

Topic

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 relational 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 a relational DB system, such as MySQL, PostgreSQL, sqlite3, and populate the database. After that, you will write SQL 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 at the end of the semester.

This programming project takes up 30 points (out of 100) of your total score. You have another option to implement a simplified project without Web interfaces, with 5 points deduction. Namely, your highest score will be 25 if you choose this simplified 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 the TA.

Stage 1: Group formation

You must form a group of at most three students for the project (Sorry, more than three is not allowed). Please provide student names, fsuIDs, and emails for each group member. If a group contains more than one student, you are tied up throughout the semester. If one happens to leave/drop from the class, the others should be on your own and shoulder the workload. 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 relational databases. Please pick an application of your interest, as you'll be working with it for the entire semester. Your application should be substantial (at least three different entities, and least three different relationships), 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 (one- or two-page long) including the following:

Note: You also need to address the staff's concerns at Stage 2 in your Development Plan.

Stage 4: Demo and Final Report

Each group must demo its application to the TA. The demonstration takes 15-20 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 did recipe search. One of its advanced functions 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 in the final week. 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, 4-8 pages in length (the font size is 11pt). You need to address the following key components in your report: