Return to main page


Database Management Systems

CMSC 461 - Spring 2023


Semester Project

Proposal Due Date: Sunday, February 26th by 11:59:00 PM EST (on Blackboard)

Final Due Date: Sunday, May 7th by 11:59:00 PM EDT (on GitHub)

Project Wrap Up Due: Sunday, May 14th by 11:59:00 PM EDT (on Blackboard)

Changelog

Introduction

In this assignment, you will be designing and implementing a database for a data set of your choosing and implementing a user interface to provide access to that data set. Your user interface may be graphical, text-based, or web-based. Ultimately, this is a creative project designed to give you an opportunity to design and implement a full system that you can be proud of and use on a resume in the future.

You may complete this project alone or in a group of up to three students. Please note that the requirements for the project do not change if you are in a group and that all members of the group will receive the same grade (with the only possible exception being the wrap up document grade) at the end of the project. Choosing to work in a group means that you (and your group members) are taking on any risks that might come with that decision.

Project Requirements

This project has two main requirements. First of all is to choose a data set and design a database schema for storing, organizing, and accessing that data. Your database design must consist of at least five tables, each of which should be designed in a manner that promotes good data access (proper use of data types, constraints, and keys/indices). In addition, you must ensure that your data access pattern makes use of at least three SELECT queries involving JOIN clauses (there is no requirement here as to which types of JOINs that you use here — just use what is sensible/useful to you).

The second requirement of this project is to design some sort of user interface that can be used to make use of your database. This interface can be as simple as a text-based system written in Python or C++, or it can be as complex as a graphical or web-based interface. The choice here is up to you — it just must provide a sensible manner to access the data (and modify it if that is applicable for your particular project idea). The design of the user interface is largely up to you, as is the way that it is implemented (programming language, etc).

This is a senior-level computer science elective course, and your project should reflect this. Additionally, as you have more than a month to complete the project, I will expect that the project involved a significant amount of effort (and thus total lines of code).

In addition, you may not use a project from another course as your project in this course.

These requirements are intentionally vague to give you the opportunity to put your own creative flair on the project. As mentioned, the main goal here is to give you something that you can be proud of after the semester is over.

Project Proposal

15% of Project Grade

The first part of the project is to write up a proposal for the project you would like to complete. This proposal should be fairly detailed and include information such as what your data set is, how you will design your database, what platform your user interface will be written for, what programming language it will use, and an estimate of how many lines of code you expect the interface to require. Your database design should include a diagram showing the proposed design of your database (be it an E-R, UML, or some other diagram type) and some idea of some of the queries that your project will require. Note that your design may change during the course of the project — nothing here will be set in stone. Also, I realize that at this point you may not entirely have a completely clear picture of all of the queries that will be required for your data set — just make a best effort at picking out a few relevant things now.

The purpose of the project proposal is twofold. First, it allows you to organize your ideas and come up with a plan and schedule for completing the project. Second, it allows me to critique your idea and provide feedback on whether it seems feasible and of sufficient complexity for the course project.

Your project proposal should be at least two single-spaced pages of text (with a standard 12pt font and 1 inch margins), but may be longer than that, of course. Ultimately, it is in your best interests to be as detailed as possible in the project proposal. Some students may wish to include mockups of how their user interface might look or other such details. These details are helpful to show what your intent is in the project and to help organize your ideas before you dive in (and thus are encouraged, but not required). Be sure to include all members of your group in the proposal document, and if you would like you can give your group (and your program) a catchy name here too. Please note that your database diagram does not directly contribute to this page count — you must have two pages of text in addition to your database diagram and any UI diagrams you provide.

Upon completion of your project proposal, I will review your document and provide feedback as to whether you have approval to start the project. If you have approval, then you will be given a link to create your GitHub repository for the project to get started. Thus, it is in your best interest to complete the proposal early to get started on the project itself earlier.

You will turn in your project proposal through the Assignments page on Blackboard. Once you have turned in your proposal, send an email to me indicating that the proposal was turned in. Be sure that all members of the group are CCed on the email as well so that my reply to it indicating whether it is approved or not will be sent to everyone in the group.

Main Project

75% of Project Grade

Your implementation of the project will constitute the majority of points on this assignment. The due date for the project is posted at the top of the project description. All code must be committed and pushed to the main branch of your GitHub repository by the due date.

Your project may be implemented using any of the following open-source database systems (all of which should be able to be set up relatively easily on your own computer):

[*]: Please note that for web-based or multi-user/parallel applications, most likely SQLite will not be the best choice here.
Other database systems may be approved by the instructor, however you MUST seek approval for such a system before beginning work on the project!

Wrap Up Document

10% of Project Grade

One week after the project is due, each team member will be required to complete a wrap up document describing their impressions of the project. If you are working in a group, each member of the group must complete this document on their own.

This document is not meant to be particularly long (a page or two is fine), and is mostly meant to let you describe what your portion of the project was (if you are in a group), what challenges you faced specifically (you can go into more detail here than in the presentation), and your feelings on the project at the end of it all.

Extra Credit: Presentation

10% Extra Credit Points Posssible

If you wish to take advantage of this extra credit possibility, you will be required to prepare a 10 minute presentation of your project for the class. These presentations will be given in-person and must cover the inspiration, design, and implementation of your project and must include a demo of the user interface. You may also include in this presentation any challenges you faced in the implementation, if you wish. The format of these presentations is largely up to you.

If you intend to participate in the extra credit opportunity, you must inform me by no later than Sunday, April 16th. Once I have an accurate view of how many students intend to present in-class, I will give you an opportunity to sign up for time slots.

Here is a basic outline of what your presentation should include:

Data Set Sources

Below is a list of potential sources for data sets. No guarantee is made of the suitability of any particular data set here or how easy/difficult it may be to work with. There is no requirement to work with any of these sources, they are just provided as ideas.

Please note that many government agencies also provide similar sets of data on their websites! This is only a small sample of the vast sea of data that is available on the web.


Last modified Tuesday, 25-Apr-2023 09:18:17 EDT