Skip to content
Steven Kight edited this page Sep 2, 2023 · 3 revisions

CS3230 Information Management Project Fall 2023

Objectives

  The purpose of this project is to apply the knowledge we learn in Information Management (CS3230 at UWG) to the design and implementation of a database-driven application. Through this project, we should gain familiarity with:

  • The process of database design and implementation
  • Different techniques in interacting with DBMSs in programming languages
  • Specifying queries in SQL DDL and DML
  • And more

Description

  In this project, we will develop a furniture rental system for a store RentMe. The store has employees who rent furniture to customers. It provides member-only services to its customers, which means to be able to rent furniture the customer must become a member first. An employee at the store may help the customer register. After successful registration, a customer’s information (name, gender, phone number, address, birthday, registration date.) is kept in the DB and the customer is given a member ID number.

  The customer may ask an employee to check the availability of furniture items by performing a search. Searches can be performed based on three criteria, by category such as beds, dining tables, or desks, among others, by style such as modern, traditional, among others, or by furniture ID.

  All the same furniture items have the same furniture ID. For instance, three same chairs have the same furniture ID. The inventory of the store keeps track of the quantity of furniture.

  If an item is available, the employee can look for the customer information by his phone number (e.g. in case the member loses his member ID), or first and last name (together). Then the employee will check out the item for the customer. A customer may rent multiple different pieces of furniture in one visit. All the furniture rented in one visit is kept track of in one rental transaction. He/she may return the rented items at any time and in any way (for instance, items rented together in one transaction may be returned on different dates in different transactions). All the furniture returned together are kept track of in one return transaction. Total rental cost is calculated at rental time. Fees are calculated based on daily rates (e.g. rentals that are less than 24 hours will be charged at one day’s rate).

  For each rental transaction, the database will keep track of the furniture information (e.g. furniture ID), quantity, rental date, due date (please do not assume that rental period to be fixed days, e.g. 7 days, 30 days, 60 days, etc.), service employee information (e.g. employee number), and any other necessary information.

 For return transactions, the database has to keep track of the return date, the service employee number (note that this employee may be different from the employee who rented the item) and any other necessary information. If the item is past due, then fine should be paid at return time. The fine rate for each furniture item past due is a daily rate.
Employees must authenticate themselves before accessing the system.

  In addition, there should be an interface provided for administrators, who should also authenticate themselves before accessing the system. They will be able to add/delete/update/search employees/furniture (however, you are not required to implement these functions). However, you must provide an interface by which the administrator can pose queries in SQL and view the result. The admin interface doesn’t include the features in the employee interface.

  Due to time constraints, we don’t consider a payment system or an interface for the customers.

  Each group is also required to come up with one additional interesting feature for this system. Or you may want to implement the following feature: The administrator should be able to select any two dates and view a report containing the information about all the members who rent furniture as well as the furniture information during the time specified.

  Please understand the initial specification described above may not be as complete as it should be, which reflects the nature of real application development. One of your tasks here is to talk to your customer, me, to unveil the details that are yet to be discovered. Please contact me if you have any questions about the requirements. The description may be elaborated based on our discussions as you, the developer and I, the customer, reach an agreement.

Requirements

  We will design and implement a database application that shall accomplish the functionality described above. The database system we will be using is MySQL DBMS on a department server. We will be using C# for our language of choice. Note that the application is not web-based. There will be several iterations during the development of the application. The requirements and due dates of them will be added as the project progresses. Note that the iterations may not be the same as what is experienced in a Software Engineering class. They are only meant to keep us on track.

  1. Because this is a group project, every member is expected to contribute equally (or nearly equally) to the project at every iteration. Students that fail to make an effort to commit to their parts of tasks at any iteration will be given one chance to improve his/her performance on the project. If no improvement has been made, the student will have to work on the project alone to avoid negatively affecting the project grade(s) of the other group member(s).
  2. At the end of the semester, each group needs to submit a soft copy of all the code and make a demonstration of the project.
  3. Each student will be individually evaluated on the project throughout the semester.
    • At the end of each iteration, each student will evaluate herself/himself and the other group member(s) for contribution to that iteration. Each member will get his/her deserved share of grade for that iteration.
    • After the final project demonstration, each student will perform self and group member evaluation. Each member will get his/her deserved share of grade for the project demo (e.g. the members of an A project may get A, or B or C or worse on the project depending on each person’s contribution).