This repository is part of the Python Bootcamp NASA challenge, known as Apollo 11. It implements a Simulation and Monitoring System designed to simulate a monitoring system for NASA's crucial Apollo 11 mission.
The system performs the following tasks:
- Generates simulated device data logs for various NASA missions.
- Analyzes log data and computes statistics for mission-critical reporting.
- Manages data logs, storage, and archiving processes.
- Outputs a visual dashboard for tracking device status.
We assume that the time for reporter always be mayor than the time to generate files, this case could be an improvement in future releases, and for this case we not control the possibility of error.
-
Clone the repository:
git clone git@github.com:JoseJulianMosqueraFuli/apolo-11.git
[!NOTE]
If you don't have installed poetry, please check this link poetry-install to install.Check with
Poetry --version
-
Navigate to the apolo11
cd apolo-11/
[!IMPORTANT]
- The project uses a configuration file
config/config.yml
where you can find various settings for the simulation and monitoring system. It includes details about missions, codes, date formats, and other relevant parameters. Refer to the config file for more information.
- The project uses a configuration file
-
Installation dependencies with Poetry
Poetry install
-
Activate environment
Poetry shell
-
Run App, with require values.
poetry run python3 main.py --num_files_min 1 --num_files_max 100 --generator_interval 5 --reporter_interval 15 or ################################ # With default values python3 run python3 main.py
-
Run the coverage
poetry run pytest --cov=apolo_11
Proposal general diagram:
Proposal key folders and files:
apolo-11/
|
|-- config/
| |-- config.yml
|-- src/
| |-- classes.py
| |-- reporter.py
| |-- generator.py
| |-- config.py
| |-- __init__.py
|
|-- tests/
| |-- test.py
|
|-- results/
| |-- devices/
| |-- backups/
| |-- reports/
|
|-- docs/
|
|-- setup.cfg
|-- main.py
|-- .gitignore
|-- License
|-- poetry.lock
|-- Readme.md
|-- pyproject.toml
Here are some things that we consider to add next:
- Create *.log files from Logger configuration
- Alternatives to parallel processing using Threads or Async.
- Improve testing performance, because last changes break it.
- Always could be improve
This project is licensed under the MIT License.
Built by Alejandra Quiroz Gómez, Sara Palacio and Jose Julian Mosquera Fuli.