The EMSUGI is a sophisticated application designed to gather and analyze emergency alerts from various sources. It leverages generative AI to predict future incidents based on historical data and current trends. This system aims to enhance the efficiency of emergency responses by providing insightful reports and visual analytics.
If you like this project, don't forget to star this repo ⭐ and fork it if you want to contribute! Your contributions and support are greatly appreciated!
- Real-Time Alert Monitoring: Fetches and stores emergency alerts across different countries.
- Generative AI: Implements AI to analyze and generate future predictions of emergency incidents.
- Graphical Representation: Displays data using charts and graphs, allowing users to visualize key metrics.
- Interactive Date/Time Range Selection: Enables users to set custom date and time ranges for report generation.
- Keyword and Topic Analysis: Identifies popular keywords and topics by country and region.
- Responsive Design: Supports a mobile-friendly and responsive layout for viewing reports.
NOTE: These features are based project's future intention so the actual performance and feature may vary due to active development phases
Below are some screenshots showing the features and layout of the system:
NOTE: These screenshots reflect the current state of the project's development and may change in the future as features evolve and improvements are made.
- Python (Version 3.x or higher): A powerful, high-level programming language used for backend development.
- Flask: A lightweight web framework for building web applications in Python.
- pandas: A data manipulation library that provides powerful data structures for data analysis.
- matplotlib: A popular plotting library used for creating static, animated, and interactive visualizations.
- gemini: An AI-powered tool for generative report generation, used for creating emergency and disaster reports.
- torch: A deep learning framework that provides flexible and efficient tools for training and deploying machine learning models, particularly for local model inference.
- transformers: A library by Hugging Face for working with pre-trained transformers and other state-of-the-art machine learning models.
- logly: A logging and monitoring tool used to track and manage logs within applications.
- python-dotenv: A tool to manage environment variables, allowing the configuration of sensitive information (API keys, tokens, etc.) in a
.env
file. - SQLite: A lightweight, disk-based database to store and retrieve data for the application.
- Tailwind CSS: A utility-first CSS framework for quickly designing responsive, modern web interfaces.
- Font Awesome - Icon library used for adding scalable vector icons in the UI.
- Chart.js - JavaScript library for creating interactive and customizable charts for data visualization.
-
Clone the repository:
git clone https://github.com/muhammad-fiaz/EMSUGI.git cd EMSUGI
-
Install the dependencies:
pip install -r requirements.txt
-
Run the Flask Web UI:
python launch.py
-
Open your browser and go to:
http://127.0.0.1:5000/
If you'd like to run this project using Docker, check out the docker_readme.md file for a step-by-step guide on building, running, and managing the EMSUGI application in a Docker container.
.
├── launch.py # Launch Flask application
├── modules/ # Application modules
│ ├── api/ # API endpoints
│ │ ├── __init__.py # Initialize API endpoints
│ │ ├── loading.py # Loading API endpoint
│ │ ├── cancel_process.py # Cancel the report generation process
│ │ .
│ │ .
│ ├── fetch_alerts.py # Fetch report from online
│ ├── generate.py # Generate report
│ ├── process.py # Process the report
│ ├── router.py # Router for the application
│ ├── db.py # Database connection
│ ├── download.py # Download the models
│ ├── async_worker.py # Async worker for the application
│ ├── routes/ # Application routes
│ │ ├── __init__.py # Initialize application routes
│ │ ├── index_page.py # Index Page route
│ │ ├── report_page.py # Report Page route
│ │ ├── analytics_page.py # Analytics Page route
│ │ ├── notice_page.py # Notice Page route
│ │ ├── license_page.py # License Page route
│ │ ├── records_page.py # Records Page route
│ │ ├── reports_page.py # Reports Page route
│ ├── utils/ # Utility functions
│ │ ├── __init__.py # Initialize utility functions
│ │ └── progress.py # Progress utility functions
│ │ └── check_for_cancel.py # Check if the report generation has been canceled
│ │ .
│ │ .
├── templates/ # Contains HTML templates
│ └── index.html # Main HTML file
├── static/ # Static files (CSS, JS, images)
│ ├── styles.css # Global styles
├── create_database.py # Used to create DB
├─��� database_alerts.db # Stored Database
├── Dockerfile # Docker configuration file
├── CODE_OF_CONDUCT.md # Code of conduct for contributors
├── LICENSE # Open-source license for the project
├── pyproject.toml # Python project configuration file
├── docker_readme.md # Instructions for using Docker
└── README.md # Project documentation
- Open the application in your browser.
- Enter a range of dates and times to generate reports.
- Visualize the results in various graphical formats.
We welcome contributions! Feel free to submit issues and pull requests to improve the project. When contributing, please make sure to follow our Code of Conduct to maintain a respectful and collaborative environment for all contributors.
Copyright (c) 2024 Muhammad Fiaz
Permission is granted, free of charge, to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, subject to the condition that the copyright notice and this permission notice are included in all copies.
The software is provided "as is", without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors be liable for any claims or damages.
For more details, please refer to the full LICENSE.