- Create and manage user accounts, whom can edit certain parts about their experience, as well as receive notifications about upcoming disasters
- Display disaster events, shelters, escape routes across the globe
- Let administrator change the data of the database, as well as import and export data
- Expose API endpoints for importing, exporting and serving structured data
- Keep the public UI separate from the API layer so page rendering stays simple and data exchange stays isolated
PHP- Vanilla application without frameworks, following the MVC model:controllers,modelssiviewsMySQL- Database for user accounts, event alerts, shelters and routesmysqli- Prepared statements + safe access to the databaseComposer autoload- Automatic load forapi/modelsandapi/handlersJavaScript- Interaction between the admin interface and dashboardCSS- Stylizing the pages
MVC- The main MVC flux:public/index.php->controller->model->viewProcedural controllers- The HTTP logic remains in different files, for a better organization and easier time reading codeRepository-like models- Each model encapsulates the data accessSeparation of concerns- The API, Admin interface and public user interface are all separated
public/- Entry point for the public applicationadmin/- The administrator interface. It allows the admin to modify the databaseapi/- Endpoints and handlers for data and exportsschema/- SQL Scripts for the databaseconfig/- Database connection configurations
To ensure the application works correctly and meets the expected requirements, everything has been carefully tested to work accordingly.
The following aspects were validated:
- User interface responsiveness on different screen sizes (Desktop & Mobile)
- Correct handling of user input and forms
- Navigation between pages/components
- Functionality of core features
- Error handling for invalid or missing data
The project is considered complete when:
- The application runs without errors
- All main features are fully functional
- The design remains responsive on desktop, tablet, and mobile devices
- The user experience is consistent and intuitive
- The final solution matches the initial requirements
The application is designed to run on an Apache Web Server with PHP, MySQL, and Composer.
- Apache 2.4+
- PHP 8.x
- MySQL / MariaDB
- Composer 2.x
mod_rewriteenabled
- Copy the project into the Apache document root or configure a virtual host for it
- Point the web server document root to the
public/directory. This is the only public entry point - Make sure
mod_rewriteis enabled so thepublic/.htaccessrewrite rules can route requests topublic/index.php - Run
composer installin the project root to install dependencies and generate thevendor/directory - Import the database schema from the
schema/folder - Configure the database credentials in
config/ - If there are any issues, restart Apache
The project is intended to be accessible locally at http://coa.local through an Apache virtual host configuration.
- The
admin/andapi/folders also use.htaccessand should remain protected from direct access. vendor/autoload.phpis required by the application, so Composer must be installed before running the project.
https://drive.google.com/drive/folders/1UfU9SJdc7Gb446mMZJFLfOG4cAn-D0iL?usp=sharing