## 2 Proposed Software Architecture
### Software Architecture Requirements  
In this section, we present the requirements identified and considered for the design and development of our software architecture based on the analysis of official civil protection documentation, the review of the school emergency response program, interviews with users who are members of the internal civil protection unit at higher education institutions, and an analysis of the services described in the state-of-the-art [28]. We classify the identified requirements according to the type of user. The main requirements for individuals or victims are described first:  
* REQ1--Authenticate in the system: The user must authenticate with his user-name/email and a password. * REQ2--Recover password: The user must recover his password by entering his email. * REQ3--Logout: The user must log out of the system. * REQ4--Register: The user must register in the system with their full name, user-name/email, telephone, full address, emergency contact, registration or employee ID, RFC, profession, position held, affiliation area, floor, telephone office, diseases, treatment, blood type, and allergies. Regarding data privacy, in our case, a privacy notice is provided to users. This document informs the user of the specific processing of their personal data within the exclusive framework of the services of the proposed system. * REQ5--Modify information: Users must modify their information in the system with their email, telephone, full address, emergency contact, RFC, profession, position performed, affiliation area, floor, office telephone, diseases, treatment, blood type, and allergies. * REQ6--Visualize the safe zones: The user must visualize the safe zones of the building. * REQ7--View glossary of signs: The user must see a glossary of the signs that the building has. * REQ8--View the directory of external support institutions: The user must view the directory of external support institutions, such as the institution's name and telephone number. * REQ9--View user manual of security equipment: The user is required to see the user manuals of the different security equipment. * REQ10--Send location to search and rescue brigades: Users must send a location notification to search and rescue brigades with their location. * REQ11--Send a message to the search and rescue brigades: The user must send a message to the search and rescue brigades. * REQ12--Answer health questionnaire: The user answers with Yes or No on a questionnaire about their state of health. * REQ13--Report a problem: The user can report a problem, such as a fire, gas leak, or breakdown, through their respective buttons. The report can be canceled within 10 s. Otherwise, the system will send a notification to the brigades of the problem's location. * REQ14--Visualize the location of the support material: The user must visualize the location of the support materials such as fire extinguishers, first aid kits, etc. * Regarding the evacuation brigade, the following requirements were defined:
* REQ15--Show the list of routes to the closest exits: The rescuer must see the closest route to the exit. Simple indications on the direction to follow. * REQ16--View users inside the building: The rescuer must see if there are users in the building; they can be viewed by building and floor, through a map or a list by building, floor, and department. * REQ17--See a list of academic staff, students, and outsiders: The rescuer must see the list of academic staff and students inside the building at the time of the earthquake. The list should have relevant information such as a full name, phone number, department, or room, and if you have a chronic illness. * REQ18--See details of the selected person: The rescuer requires additional information such as an emergency contact, address, and a photograph. * REQ19--Identify academic staff, students, and external people as located or absent: The rescuer must identify academic staff, students, and external people as located if they are within a safe zone; otherwise, they can be marked absent.