πͺ’ Prepare, Respond, Recover, Repeat. πͺ’
A disaster response and relief management system for communities. Built for support, made to connect.
IT 2104
Banaag, Ashley Mae R.
Table of Contents
ππ¦π΄ππ―π¦π€π΅ is a comprehensive disaster response management system designed to help local governments and relief organizations effectively coordinate emergency response activities. By providing streamlined volunteer management and effective tracking of essential resources like food and medical supplies, the system enables communities to be better prepared for emergencies. The main objective of this system is to assist communities prepare for, respond to, and recover from calamities.
In developing ResQnect, several Python concepts and libraries were applied to achieve efficient and scalable performance, including:
-
Classes and Objects (OOP Basics) π
I createdVolunteer
andResource
classes to represent individual volunteers and resources. To manage these, I implementedVolunteerManager
andResourceManager
classes, handling actions like adding, viewing, and updating records. TheDisasterResponseSystem
acts as the main controller, integrating volunteer and resource management, task assignment, and response tracking under one system. -
Encapsulation π
Encapsulation bundles data and methods into one class while restricting direct access to object attributes. For example, theVolunteer
andResource
classes have private attributes (like name and quantity) that can only be accessed or modified using specific methods. -
Abstraction ποΈ
I hid complex implementation details in the Manager classes. For instance, users donβt see how data is saved to or loaded from JSON files; they only interact with a menu system to perform actions like assigning tasks or updating resources. -
Polymorphism π
I used polymorphism with the__str__()
method in theVolunteer
andResource
classes. Each class has its own implementation for converting an object to a string. Methods likesave_volunteers()
andsave_resources()
also behave similarly for different data types. -
Data Saving and Loading ποΈ
When new data is added or updated, it is saved in JSON files (volunteers.json
andresources.json
). On startup, the system automatically loads this data so users donβt need to re-enter it. -
Main Menu and Submenus π
TheDisasterResponseSystem
uses a loop to display the main menu, where users can manage volunteers, resources, and tasks. Submenus provide detailed options, like viewing or updating specific records, and loops make navigation easy until users choose to exit. -
Task Assignment and Tracking β±οΈ
Users can assign tasks like βmedical aidβ or βfood distributionβ to available volunteers. The system tracks assigned tasks and their statuses, so users can monitor ongoing responses in real-time. -
Lists and Dictionaries π
Volunteers are stored in a list, making it easy to add, update, or iterate through them.
Resources are stored in a dictionary, where each resource type is a key, and its quantity is the value for quick lookups. -
Printing and Formatting Strings π³οΈ
I customized the__str__()
method for cleaner display of volunteer and resource details. F-strings make dynamic outputs, likef"Task '{task_type}' assigned to {volunteer.name}."
, simple and clear.
ResQnect aligns with Sustainable Development Goal (SDG) 11: Sustainable Cities and Communities by enhancing disaster preparedness, response, and resilience. The system supports communities by tracking and organizing essential resources like food, water, and medical supplies, enabling quick mobilization during emergencies. It efficiently manages task assignments and volunteer deployment, ensuring timely and effective responses in critical areas. Additionally, ResQnect helps build resilience by analyzing response times, resource usage, and volunteer activity, providing valuable insights to improve disaster response strategies over time. Through these functions, ResQnect empowers communities to be more inclusive, safe, and sustainable.
To run the ResQnect system, follow these steps:
- Clone the repository:
git clone https://github.com/yshlae/ResQnect.git
- Navigate to the project repository:
cd ResQnect
- Install required dependencies:
pip install -r requirements.txt
- Run the program:
python main.py
To run the ResQnect Disaster Response and Relief Management System, follow these steps:
-
Start the Program
When you run the program, you will be presented with the main menu. The menu will look something like this:- 1. Volunteer Management
- 2. Resource Management
- 3. Task Assignment
- 4. Disaster Response Tracker
- 5. Response Time Reports
- 6. Exit
Use the number associated with each option to select what you want to do.
-
Volunteer Management: Adding a New Volunteer
- Choose 1. Volunteer Management from the main menu.
- The program will prompt you to enter the following details for a new volunteer:
- Name: Enter the volunteerβs name.
- Type: Specify the type of volunteer (ex., medical, rescue, or general).
- Availability: Specify if the volunteer is available or unavailable.
- After entering the details, the program will save this data in volunteers.json for future use.
-
Resource Management: Adding Resources
- Go back to the main menu and choose 2. Resource Management.
- You will be asked to enter the resources available for use in the disaster response, such as:
- Food: Enter the quantity of food available.
- Water: Enter the quantity of water available.
- This data is saved in resources.json, ensuring that the system can access these resources whenever needed.
-
Task Assignment: Assigning Tasks to Volunteers
- From the main menu, choose 3. Task Assignment.
- You will be prompted to assign a task (such as medical aid) to an available volunteer.
- The task is added to a task list and marked as Assigned, keeping track of which volunteers are assigned to which tasks.
-
Disaster Response Tracker: Tracking and Updating Tasks
- Choose 4. Disaster Response Tracker from the main menu to view and manage ongoing tasks.
- The program will display the list of tasks with their current statuses (ex., Assigned, Completed).
- You can update the status of tasks (ex., mark a task as Completed once itβs finished), ensuring real-time tracking of disaster response efforts.
-
Response Time Reports: Viewing Task Response Times
- Choose 5. Response Time Reports from the main menu.
- The program will generate and display response time reports, showing the time taken from the assignment of a task to its completion.
- You can view a list of tasks along with their assigned times, completion times, and how long each task took to complete.
-
Exit
- If you wish to exit the program, select 6. Exit from the main menu.
π¨ Prepare, Respond, Recover, Repeat! π¨