16/01/2026
45 Points Possible
In Progress
NEXT UP: Submit Assignment
5 Attempts Allowed
Attempt 1 Add Comment
Details
Goal
To produce a Python program that effectively solves a real-world problem.
Task Instructions
You can choose one (1) of the two programs below. You are required to design and create a program that performs your solution. For those students who are looking for higher grades such as Distinctions or High Distinction, you should aim to implement two or more of the advanced options.
Format/Product: Report and Program Code
Type: Individual
Word Count: Approximately 1,000 words. Program length can vary - there is no minimum or maximum length.
1. Regional Animal Shelter Management System (RASMS)
🐾 Background
You have been hired by the Regional Animal Welfare Authority to design a simple Animal Shelter Management System (RASMS).
The system will help staff track animals in multiple shelters across the region, manage adoptions, and move animals between shelters when needed.
Your job is to model and implement this system using Python.
🎯 Task Objectives (Core Requirements)
You must design and implement a Python program that performs the following key tasks:
1. Shelter Setup
Model at least 10 shelters from around Adelaide or regional South Australia.
Each shelter has:
2. Animal Records
Each animal in the system must have:
3. System Actions
Your program should provide a menu-driven interface that allows the Shelter Manager to perform the following actions:
a) View Shelter Inventory
b) Move an Animal Between Shelters
c) Update an Animal's Status
d) Exit the System
💡 Advanced Features (for Distinction / High Distinction)
Students aiming for higher grades should implement two or more of the following extensions:
1. File Handling (JSON or CSV)
2. Search and Reporting
3. Scalability / Code Design
4. Database Integration (SQLite)
🐕 5. Adoption for a Fee and Revenue Tracking
Extend the system to support animal adoptions with fees.
When an animal is marked as Adopted, record an adoption fee based on animal type and age, e.g.:
Students may choose a similar pricing logic.
Each shelter must keep a running total of all adoption fees collected.
Add a new menu option: "View Shelter Revenue Report", which displays:
2. Campus Café Ordering and Inventory System (CCOIS)
☕ Background
You have been hired to develop a Campus Café Ordering and Inventory System (CCOIS) for a small university café.
The café serves students and staff and wants to computerize its menu, sales, and inventory tracking.
Your program will allow customers to order food and drinks, calculate totals, and ensure the café's stock levels are updated as items are sold.
The system should also allow a café manager to review or restock inventory when needed.
🎯 Task Objectives (Core Requirements)
You must design and implement a Python program that performs the following key tasks:
1. Load Menu and Inventory
When the program starts, load menu and stock data from a text or JSON file (e.g., menu.json).
Each menu item must include:
Store the data in an appropriate data structure (e.g., a list of dictionaries or class objects).
2. Customer Ordering System
When a customer arrives:
3. Checkout
When the customer decides to checkout:
💡 Advanced Features (for Distinction / High Distinction)
Students aiming for higher grades should implement two or more of the following extensions:
1. Manager Mode
Add a Manager Login Mode (simple password-based system).
When logged in as the manager, allow:
2. Database Integration (SQLite)
Store all menu and inventory data in an SQLite database.
Use SQL commands to:
3. Reporting and Revenue Tracking
Track total daily sales.
Add a "Manager Report" option that shows:
4. Meal Deal or Combo Pricing (Optional Enhancement)
Submission Format
You should submit two documents:
Report (20 points)
Your report is to be presented as a professional business report. It must be submitted as a Word document in the format "<student name> - Task 2.doc" (not pdf) with the following structure:
Python program (25 points)
The working Python program together with any testing files or configuration files should be compressed into a .zip in the format "<student name> - Task 2.zip" and submitted.
You should include documentation throughout the program.
If your Python program opens a file, please ensure it is opened from the same folder as your program.
In keeping with the University of the Sunshine Coast policy, all assignments are to be submitted in Canvas via Turnitin below.
Resources
Testing Ideas:
Use of AI is permitted in this task
You may use generative AI in completing this assessment task. If you are using AI tools, please learn what they can and cannot do, then use them critically. Note that AI tools can generate incorrect or misleading results so make sure you use them with care and critical judgement. You will be responsible for the accuracy of any information that you submit as part of an assessment. Any use of generative AI must be appropriately acknowledged by an attribution to the tools used in completing the task. Failure to acknowledge the use of AI may constitute contract cheating.
Acknowledging the use of AI
Any use of generative AI must be appropriately acknowledged by an attribution to the tools used in completing the task. To acknowledge the use of generative tools, students should clearly include a written declaration of the use of AI in the beginning or at the end of their assessment tasks. The format should be as below:
I acknowledge the use of generative AI tools to generate or enhance materials that are included within this assessment task in modified form.
Rubric
Task 3 Rubric
Criteria 1: Analysis of the given problem and appropriate report structure (15 pts)
Criteria 2: Creative approaches to solving the problem (5 pts)
Criteria 3: Application of relevant programming concepts (10 pts)
Criteria 4: Correctness of the program and output and program documentation (15 pts)
Total Points: 45
Submission Declaration
I agree to the tool's End-User License Agreement
I declare that this assignment is my own work and complies with the University's Student Conduct - Governing Policy. I agree and acknowledge that by submitting this work it may be used for a textual similarity review by Turnitin.com and included as source documents in the Turnitin.com reference database solely for the purpose of detecting plagiarism of such documents. Use of the Turnitin.com service is subject to the Usage Policy posted on the Turnitin.com site.
Note: This report is provided as a sample for reference purposes only. For further guidance, detailed solutions, or personalized assignment support, please contact us directly.

Student Name: [Your Name]
Student ID: [Your ID]
Course: ICT112
Task: Task 2 - Project
Date: January 16, 2026
This report presents the design and implementation of a Regional Animal Shelter Management System (RASMS) for the Regional Animal Welfare Authority. The system is designed to help shelter staff track animals across multiple shelters in the Adelaide and regional South Australia area, manage adoptions, and facilitate animal transfers between shelters.
The solution is implemented in Python and includes advanced features such as file handling with JSON, search and reporting capabilities, adoption fee tracking with revenue reporting, and an object-oriented design approach using classes.
The RASMS aims to streamline the management of animals across multiple shelters by providing a centralized system that allows shelter managers to:
The program provides a menu-driven interface with the following core functionalities:
Core Features:
Advanced Features Implemented:
The system follows an object-oriented design with two main classes:
Animal Class:
Shelter Class:
Main Program Functions:
Data is stored in JSON format with the following structure:
{ "shelters": [ { "name": "Glenelg Animal Rescue", "location": "Glenelg", "address": "12 Paws Street, Glenelg", "total_revenue": 0, "animals_adopted_count": 0, "animals": [ { "animal_id": "D001", "name": "Max", "animal_type": "Dog", "breed": "Labrador", "age": 3, "health_status": "Healthy", "adoption_status": "Available" } ] } ] }
BEGIN Program LOAD shelter data from JSON file WHILE user does not choose to exit DO DISPLAY main menu options: 1. View Shelter Inventory 2. Move Animal Between Shelters 3. Update Animal Status 4. Search Animals 5. View Revenue Report 6. Exit System GET user choice CASE choice OF 1: CALL view_inventory() 2: CALL move_animal() 3: CALL update_animal_status() 4: CALL search_animals() 5: CALL view_revenue_report() 6: SAVE data to JSON file DISPLAY exit message EXIT loop DEFAULT: DISPLAY error message END CASE END WHILE END Program
FUNCTION view_inventory(shelters) FOR each shelter in shelters DO DISPLAY shelter name, location, address DISPLAY number of animals in shelter IF shelter has animals THEN FOR each animal in shelter DO DISPLAY animal ID, name, type, breed, age DISPLAY health status, adoption status END FOR ELSE DISPLAY "No animals currently housed" END IF DISPLAY separator line END FOR END FUNCTION
FUNCTION move_animal(shelters) DISPLAY list of all shelters with numbers GET source shelter number from user IF source shelter is invalid THEN DISPLAY error message RETURN END IF DISPLAY animals in source shelter GET animal ID from user FIND animal in source shelter IF animal not found THEN DISPLAY error message RETURN END IF DISPLAY list of destination shelters GET destination shelter number from user IF destination shelter is invalid THEN DISPLAY error message RETURN END IF REMOVE animal from source shelter ADD animal to destination shelter UPDATE animal's shelter name DISPLAY movement record: - Animal ID and name - Old shelter and address - New shelter and address DISPLAY success message END FUNCTION
FUNCTION update_animal_status(shelters) DISPLAY list of all shelters with numbers GET shelter number from user IF shelter is invalid THEN DISPLAY error message RETURN END IF DISPLAY animals in selected shelter GET animal ID from user FIND animal in shelter IF animal not found THEN DISPLAY error message RETURN END IF DISPLAY current status of animal DISPLAY status type options: 1. Health Status 2. Adoption Status GET status type choice from user IF choice is Health Status THEN DISPLAY health status options GET new health status from user UPDATE animal's health status ELSE IF choice is Adoption Status THEN DISPLAY adoption status options GET new adoption status from user IF new status is "Adopted" THEN CALCULATE adoption fee based on animal type and age ADD fee to shelter's total revenue INCREMENT shelter's adopted count DISPLAY adoption fee information END IF UPDATE animal's adoption status END IF DISPLAY success message with updated status END FUNCTION
FUNCTION search_animals(shelters) DISPLAY search options: 1. Search by Name 2. Search by Breed 3. Search by Health Status GET search choice from user GET search term from user CREATE empty results list FOR each shelter in shelters DO FOR each animal in shelter DO IF search choice is Name THEN IF animal name contains search term THEN ADD animal and shelter to results END IF ELSE IF search choice is Breed THEN IF animal breed contains search term THEN ADD animal and shelter to results END IF ELSE IF search choice is Health Status THEN IF animal health status matches search term THEN ADD animal and shelter to results END IF END IF END FOR END FOR IF results is empty THEN DISPLAY "No animals found" ELSE DISPLAY number of animals found FOR each result DO DISPLAY animal details and shelter location END FOR END IF END FUNCTION
FUNCTION calculate_adoption_fee(animal_type, age) CONVERT animal_type to lowercase IF animal_type is "dog" THEN IF age is less than 5 THEN RETURN 300 ELSE RETURN 200 END IF ELSE IF animal_type is "cat" THEN IF age is less than 5 THEN RETURN 250 ELSE RETURN 150 END IF ELSE IF animal_type is "rabbit" OR "bird" OR "reptile" THEN IF age is less than 5 THEN RETURN 150 ELSE RETURN 100 END IF ELSE RETURN 100 (default fee) END IF END FUNCTION
FUNCTION view_revenue_report(shelters) DISPLAY report header CREATE variable for regional_total = 0 FOR each shelter in shelters DO DISPLAY shelter name DISPLAY number of animals adopted DISPLAY total adoption fees collected ADD shelter revenue to regional_total DISPLAY separator END FOR DISPLAY regional total for all shelters combined END FUNCTION
FUNCTION load_data(filename) TRY OPEN file for reading PARSE JSON data from file CREATE empty shelters list FOR each shelter data in JSON DO CREATE new Shelter object FOR each animal data in shelter DO CREATE new Animal object ADD animal to shelter END FOR ADD shelter to shelters list END FOR RETURN shelters list CATCH FileNotFoundError DISPLAY warning message RETURN empty shelters list with default data CATCH JSONDecodeError DISPLAY error message RETURN empty shelters list END FUNCTION FUNCTION save_data(shelters, filename) CREATE empty data dictionary CREATE empty shelters list in dictionary FOR each shelter in shelters DO CONVERT shelter to dictionary format ADD animals list to shelter dictionary ADD shelter dictionary to list END FOR TRY OPEN file for writing WRITE JSON data to file with formatting DISPLAY success message CATCH IOError DISPLAY error message END FUNCTION
The following Python standard libraries are used in this project:
json
os
No additional installation is required as all libraries used are part of Python's standard library. To run this program, you only need:
The testing approach includes:
Test ID: TC001
Function: view_inventory()
Objective: Verify that all shelters and animals are displayed correctly
Preconditions: System loaded with sample data
Test Steps:
Expected Output:
All shelters displayed with: - Shelter name, location, and address - Number of animals - Each animal's ID, name, type, breed, age, health status, adoption status
Test Data: Default shelters_data.json file
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC002
Function: move_animal()
Objective: Verify that an animal can be successfully moved between shelters
Preconditions: At least 2 shelters exist, source shelter has at least 1 animal
Test Steps:
Input:
Expected Output:
Movement Record: Animal: D001 - Max From: Glenelg Animal Rescue, 12 Paws Street, Glenelg To: [Destination Shelter Name and Address] Successfully moved!
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC003
Function: move_animal()
Objective: Verify error handling for non-existent animal ID
Preconditions: System loaded with data
Test Steps:
Input:
Expected Output:
Error: Animal with ID X999 not found in this shelter.
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC004
Function: update_animal_status()
Objective: Verify that animal health status can be updated
Preconditions: Animal exists in system
Test Steps:
Input:
Expected Output:
Animal D001 - Max's health status updated to: Needs Vaccination
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC005
Function: update_animal_status() with adoption fee
Objective: Verify adoption status update and fee calculation
Preconditions: Animal is available for adoption, age < 5, type = Dog
Test Steps:
Input:
Expected Output:
Adoption Fee Calculated: $300 This fee has been added to the shelter's revenue. Animal D001 - Max's adoption status updated to: Adopted
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC006
Function: search_animals()
Objective: Verify search functionality by animal name
Preconditions: Multiple animals in system
Test Steps:
Input:
Expected Output:
Found 1 animal(s) matching your search: Animal ID: D001 Name: Max Type: Dog Breed: Labrador Age: 3 years Health: Healthy Adoption Status: Available Shelter: Glenelg Animal Rescue, Glenelg
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC007
Function: search_animals()
Objective: Verify search functionality by breed
Preconditions: Multiple animals with different breeds
Test Steps:
Input:
Expected Output:
Found X animal(s) matching your search: [List of all Labrador dogs with details]
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC008
Function: search_animals()
Objective: Verify handling when search returns no results
Preconditions: System loaded with data
Test Steps:
Input:
Expected Output:
No animals found matching your search criteria.
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC009
Function: view_revenue_report()
Objective: Verify revenue report displays correct information
Preconditions: At least one animal has been adopted with fee
Test Steps:
Expected Output:
=== SHELTER REVENUE REPORT === Shelter: Glenelg Animal Rescue Animals Adopted: 1 Total Revenue: $300.00 --------------------------------- Regional Total Revenue: $300.00
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC010
Function: save_data() and load_data()
Objective: Verify data is saved and loaded correctly
Test Steps:
Expected Output:
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC011
Function: main()
Objective: Verify error handling for invalid menu selections
Test Steps:
Input: 9
Expected Output:
Invalid choice. Please try again.
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC012
Function: calculate_adoption_fee()
Objective: Verify correct fee for young cat
Test Steps:
Input:
Expected Output:
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC013
Function: calculate_adoption_fee()
Objective: Verify correct fee for older dog
Test Steps:
Input:
Expected Output:
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC014
Function: load_data()
Objective: Verify system handles missing data file gracefully
Test Steps:
Expected Output:
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
Test ID: TC015
Function: view_inventory()
Objective: Verify correct display when shelter has no animals
Test Steps:
Expected Output:
Shelter: [Name] Location: [Location] Address: [Address] Number of Animals: 0 No animals currently housed in this shelter.
Actual Result: [To be filled during testing]
Status: [Pass/Fail]
| Test ID | Test Name | Priority | Status | Notes |
|---|---|---|---|---|
| TC001 | View Inventory | High | [Pass/Fail] | |
| TC002 | Move Animal - Valid | High | [Pass/Fail] | |
| TC003 | Move Animal - Invalid ID | Medium | [Pass/Fail] | |
| TC004 | Update Health Status | High | [Pass/Fail] | |
| TC005 | Update Adoption with Fee | High | [Pass/Fail] | |
| TC006 | Search by Name | Medium | [Pass/Fail] | |
| TC007 | Search by Breed | Medium | [Pass/Fail] | |
| TC008 | Search No Results | Low | [Pass/Fail] | |
| TC009 | View Revenue Report | High | [Pass/Fail] | |
| TC010 | Data Persistence | High | [Pass/Fail] | |
| TC011 | Invalid Menu Choice | Low | [Pass/Fail] | |
| TC012 | Cat Adoption Fee | Medium | [Pass/Fail] | |
| TC013 | Dog Adoption Fee | Medium | [Pass/Fail] | |
| TC014 | Missing Data File | Medium | [Pass/Fail] | |
| TC015 | Empty Shelter Display | Low | [Pass/Fail] |
File-Based Storage: The system uses JSON file storage which has limitations for concurrent access. If multiple users try to access the system simultaneously, data corruption could occur.
No User Authentication: The system does not have user login or role-based access control. Any person running the program has full administrative access to all functions.
Fixed Pricing Structure: Adoption fees are calculated using predefined rules and cannot be adjusted on a per-transaction basis without modifying the code.
Text-Based Interface: The system uses a command-line interface which may not be as user-friendly as a graphical interface for some users.
Limited Error Recovery: If the JSON file becomes corrupted, the system will fail to load data and will create default data, potentially losing historical records.
Single Region Focus: The system is designed specifically for Adelaide and regional South Australia. Expansion to other regions would require modifications.
No Backup System: There is no automated backup of the data file. Users must manually backup the JSON file.
To address these limitations, future versions could include:
I acknowledge the use of generative AI tools (Claude by Anthropic) to generate or enhance materials that are included within this assessment task in modified form. Specifically, AI was used to:
All code logic, design decisions, and implementation were created by me with AI serving as a reference tool and writing assistant. I take full responsibility for the accuracy and functionality of the submitted work.
Get original papers written according to your instructions and save time for what matters most.