INF1002 Programming Fundamentals Team Project Specification 1. Introduction A database is a structured collection of data organized in a way that allows for efficient storage, retrieval, and manipulation of that data. A database normally has many data tables and each data table includes data for a group of similar records. For example, one data table could be used to store the prices of fruits. Another data table could be used to store the names of students. Each data table can have multiple records and each record will have two parts: Key and Value. The Key is the field that is used to uniquely identify and retrieve records from the data table. The Value is the content associated with the Key. For example: Data Table: FruitPrice Key Apple Orange Watermelon Value 2.3 2.5 5.6 Data Table: StudentName Key 2301234 2201234 2304567 Value Frank Daniel John A Database Management System (DBMS) is software that provides an interface for users’ interacting with databases. It is a crucial component in modern information systems and plays a central role in storing, retrieving, and managing data. DBMS provides several fundamental operations for interacting with data stored in a database. These operations typically include: Insert (Add), Query, Update (Edit), and Delete. 2. Detailed Requirements Your team is required to implement EzDB, a simple database management system in C with the requirements described as below. The programme will be using a command-line-like interface; no graphical UI is required. 2. 1. File Database A file will be used as the database to store all the data records. Only ONE data table needs be implemented in your file database and the data types for the Value of all records should be the same. For example, you may choose your own database with: • • • a FruitPrice data table (the Key is the FruitName and the Value is the Price), or; a StudentName data table (the Key is the StudentID and the Value is the StudentName), or; an InternationalCallingCode data table (the Key is the CountryName and the Value is the CountryCode), etc. Please name your database file in the following convention: • DataTableName.txt. For example: FruitPrice.txt Your programme should accept the following command inputs from the user: • “OPEN FruitPrice.txt”: to open an existing database file and read all the records into memory ready for operations (Section 2.2). • “SAVE FruitPrice.txt”: to save all the latest records in memory into the database file. Please choose a different data table other than the abovementioned 3 sample data tables. 2.2. Operations Your programme should allow the users to conduct the following operations on the data records read from the file database. • • • • • SHOW ALL: to show all the current records. INSERT: to add a new record to the database. QUERY: to search for a record in the database. UPDATE: to update the value for a given record. DELETE: to delete a record from the database. Below describes how each operation works for EzDB (assume that you choose the FruitPrice data table). Operation SHOW ALL Key Value COMMAND SHOW ALL Description To display all the current records in the following format: e.g. “ There are in total 3 records found: Mango 6.5 Apple 3.2 Watermelon 5.1 “ INSERT Mango 6.5 INSERT Mango 6.5 If there is no existing record with Key=Mango found in the database, a new record with Key=Mango and Value=6.5 will be inserted into the present records. Upon success, EzDB will prompt: • “A new record of Key=Mango, Value=6.5 is successfully inserted.” If the record with Key=Mango exists in the original data table, it will simply prompt: • “The record with Key=Mango already exists in the database.” QUERY Mango QUERY Mango To search if there is any existing record with the Key=Mango. If the record exists, EzDB will prompt: • “A record of Key=Mango, Value=6.5 is found in the database.” If there is no record found, EzDB will prompt: • “There is no record with Key=Mango found in the database.” UPDATE Mango 5.0 UPDATE Mango 5.0 If the record with Key=Mango is found, then update the Value of the record with Key=Mango from 6.5 to 5.0 and prompt: • “The value for the record of Key=Mango is successfully updated.” If there is no record with Key=Mango found, EzDB will prompt: • “There is no record with Key=Mango found in the database.” DELETE Mango DELETE Mango If the record with Key=Mango is found, delete the record and prompt: • “The record of Key=Mango is successfully deleted.” If there is no record with Key=Mango found, prompt to the user: • “There is no record with Key=Mango found in the database.” 2.3. Declaration of non-plagiarism It is required that the EzDB programme will output the following content when it is started: “ Declaration SIT’s policy on copying does not allow the students to copy source code as well as assessment solutions from another person or other places. It is the students’ responsibility to guarantee that their assessment solutions are their own work. Meanwhile, the students must also ensure that their work is not accessible by others. Where such plagiarism is detected, both of the assessments involved will receive ZERO mark. We hereby declare that: • We fully understand and agree to the abovementioned plagiarism policy. • We did not copy any code from others or from other places. • We did not share our codes with others or upload to any other places for public access. • We agree that our project will receive Zero mark if there is any plagiarism detected. Declared by: Group Name: (please insert your group name) Team members: 1. XXX 2. XXX 3. XXX 4. XXX 5. XXX 6. XXX Date: (please insert the date when you submit your group project). “ 3. Report In addition to your code, you must also submit a brief technical report that describes how the program works and how you went about constructing it. In particular, it should contain: • a technical description of how the programme is structured. • a breakdown of the contribution made by each team member to the project. • Technical descriptions explaining what data structures (if any) were used and why these were chosen. There should be of sufficient detail in your report that someone else who has also studied INF1002 would be able to implement a similar program without needing to refer to your code. The report does not need to contain a user guide for the program. 4. Timeline and Deliverables By 11:30pm, 23 Nov 2023, Final Submission Thursday Submit a zip file to your group’s xSiTe Dropbox, including: • All C source code • The compiled and runnable .exe file • Report The zip file should be named in format of: “INF1002C-TeamX”.zip. For example: “INF1002C-P1-1.zip”. By 11:30pm, 24 Nov 2023, Peer Evaluation Friday Complete your TEAMMATES. peer evaluation on Otherwise, • There will be a 10% penalty for your own peer evaluation mark. • The contribution credits will be evenly distributed among the other team members. 5. Late Submission A penalty of 20% per day for each deliverable will be imposed for late submission unless extension has been granted prior to the submission date. Request for extension will be granted on a case-by-case basis. Any work submitted more than 4 days after the submission date will not be accepted and no mark will be awarded. 6. Assessment criteria Your assignment will be assessed according to the criteria listed in the mark scheme in Table 1. Table 1 Assessment Criteria Each requirement/function will be evaluated based on the following criteria: Weight Code • 50% • Code completeness and correctness: implement all required features correctly and efficiently. Code clarity: easy to read and understand with comments and good modularity. Code reliability: good data validation, no bugs or errors. • Report • Your report should include all required information. • Your report should be well-organised and easy to read, without errors. Project presentation and demonstration • Your team should briefly present key functions and data structures implemented (max 5 minutes); • Your team should make a live demo of the key functions of your developed EzDB (5-7 minutes). • Be prepared for Q&A (max 3 minutes). 15% 15% 15% 5% The grade for each individual member will be weighted based on the contribution and peer evaluation.