Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
BDA100 Group Assignment
Release Date : 25th February 2025
Due Date : 18th April 2025 11:59 pm
Value : 35% of total assessment
Marks : Marked out of 100
Assessment Mode : Group Assessment
Penalty for late submission : 5 marks per day
RATIONALE
This assignment has been designed to allow students to test and demonstrate their understanding and ability to write Python program using concepts such as functions, variables, iterations, file processing and Object – Oriented (OO) approach.
· CLO3: Demonstrate the ability to code algorithms, debug and test using an IDE according to programming standard (P4, PLO3, MQFC3a).
CASE STUDY
Develop a Python-based To-Do List Application that helps users efficiently manage their daily tasks. The system should allow users to add, update, search, delete, and mark tasks as complete/incomplete while maintaining an organized structure.
Key Features & Requirements
1. Task Management
• Users can add new tasks with the following attributes:
o Task ID (unique identifier)
o Task Description
o Priority Level (High, Medium, Low)
o Due Date (YYYY-MM-DD format)
o Status (Pending / Completed)
• Tasks should be stored using a Dictionary.
2. Task Operations (Ask for user input on which operation they desire)
· Add New Task → Prompt the user to input task details.
· Mark Task as Completed → Update the task’s status to "Completed".
· Edit Task Details → Allow modification of description, priority, or due date.
· Delete Task → Remove a task permanently from the list.
3. Task Searching & Filtering
· Search for tasks by:
o Priority (High, Medium, Low)
o Due Date (Upcoming tasks within a given range of dates)
o Status (Pending/Completed)
4. Display Tasks in a Structured Format
· Display all tasks in an organized tabular format:
Example:
+-----------+-----------------------------------+----------+----------------+-------------+
| Task ID | Description | Priority | Due Date | Status |
+-----------+-----------------------------------+----------+----------------+--------------+
| Task001 | Submit project report | High | 2024-03-05 | Pending |
| Task002 | Buy groceries | Medium | 2024-02-28 | Completed |
+-----------+-----------------------------------+------------+--------------+---------------+
5. Save & Load Tasks from a File
· Users should be able to save their task list into a text file (tasks.txt) and reload saved tasks whenever needed.
· The program should handle file errors gracefully (e.g., file not found).
Detailed requirements
1. The program provides a clear menu structure, guiding users through different modules or functionalities. Users can navigate between modules seamlessly, with options to return to the main menu or correct accidental module selections.
2. The system will have two main classes.
· Task - Represents a single task with the following attributes:
o task_id (unique identifier)
o description (short description)
o priority (low, medium, high)
o due date (date)
o status (True (complete)/False (incomplete))
· ToDoList - This class will store all tasks in a dictionary and provide methods for the Task Operations.
3. The program will apply the Dictionaries concept to store the Tasks. No List/Tuple is allowed in this program.
4. Do not construct the program in a single main function only. Students are required to apply the Functions concept to make the program look smart and neat. Include comments as a good programming habit.
Instructions
1. Solve the case study using Jupyter Notebook.
2. Save all your coding files and external text files into a folder and then compress the folder into a zip file. Submit the zip file through the LMS submission link.
3. There will be a 15-minute program demonstration (including Q&A) in the next class after submission. Refer to the marking rubric.
Notes
i. If you are not clear about the assignment requirements, please contact the lecturer.
ii. You may refer to the materials from textbooks or any other references, but you must cite the source, no matter how brief. Failure to do so will result in zero marks being awarded for the assignment.
iii. The codes will go through an AI software check. If it is determined that the code is AI-generated, you will receive a zero on this assignment.
iv. All assignments should be accompanied by a completed assignment cover sheet and submitted to the LMS assignment submission link.
v. A penalty of 5 marks per working day (including Saturday) will be imposed for late submission.
Marking Rubric:
Student Name:
Student Name:
|
No |
Descriptions |
Marks |
|
1. |
Program Development (40 Marks) i. Clear instructions are given to guide the users to use the program successfully. (5) ii. Module navigation is smooth whereby the program provides options to let users to go back to main menu or sub menu if the wrong module is accidentally selected. (10) iii. Attempts at error handling. (5) iv. Comments written in the programming codes as a good programming habit. (5) v. Proper and neat program structure. (5) vi. Program runs successfully with no errors. (10) |
|
|
2 |
Dictionaries and Sets (5 Marks) i. Able to use various identifiers for storing constant or dynamic data. (5) |
|
|
3 |
Defining Classes (20 Marks) i. Able to create the Class and import into the main program successfully. (5) ii. Able to include all attributes into the Class successfully. (5) iii. Able to provide all get and set methods for all attributes successfully. (5) iv. Able to perform all tasks through classes created. (5) |
|
|
4 |
File Handling (15 Marks) i. Able to import and export files. (5) ii. Able to process files. (10) |
|
|
5 |
Presentation and Q&A (20 Marks) i. Successful demonstration of program. (10) ii. Demonstration of knowledge in QnA. (10) |
|
|
|
Penalty (AI-generated/late submission) |
|
|
|
Total over 100% |
|