Skip to content

🚨 A disaster response management system for communities. Built for support, made to connect.

Notifications You must be signed in to change notification settings

yshlae/ResQnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

80 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ResQnect Logo

ResQnect

πŸͺ’ 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
  1. Project Overview
  2. Application of Python Concepts
  3. Integration with SDG
  4. Running the Program

Project Overview πŸ”

π˜™π˜¦π˜΄π˜˜π˜―π˜¦π˜€π˜΅ 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.

Application of Python Concepts 🐍

In developing ResQnect, several Python concepts and libraries were applied to achieve efficient and scalable performance, including:

  • Classes and Objects (OOP Basics) πŸ“š
    I created Volunteer and Resource classes to represent individual volunteers and resources. To manage these, I implemented VolunteerManager and ResourceManager classes, handling actions like adding, viewing, and updating records. The DisasterResponseSystem 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, the Volunteer and Resource 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 the Volunteer and Resource classes. Each class has its own implementation for converting an object to a string. Methods like save_volunteers() and save_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 and resources.json). On startup, the system automatically loads this data so users don’t need to re-enter it.

  • Main Menu and Submenus πŸ”
    The DisasterResponseSystem 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, like f"Task '{task_type}' assigned to {volunteer.name}.", simple and clear.


Integration with SDG 🌍

SDG Goal 11

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.


Running the Program πŸ‘©β€πŸ’»

To run the ResQnect system, follow these steps:

  1. Clone the repository:
    git clone https://github.com/yshlae/ResQnect.git
  2. Navigate to the project repository:
    cd ResQnect
  3. Install required dependencies:
    pip install -r requirements.txt
  4. Run the program:
    python main.py
    

Instructions for Running the Program πŸ’»

To run the ResQnect Disaster Response and Relief Management System, follow these steps:

  1. 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.

  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Exit

    • If you wish to exit the program, select 6. Exit from the main menu.

🚨 Prepare, Respond, Recover, Repeat! 🚨

About

🚨 A disaster response management system for communities. Built for support, made to connect.

Topics

Resources

Stars

Watchers

Forks

Languages