This project, named "Apolo-11," aims to simulate and consolidate records generated by various components, such as satellites, spacecraft, suits, and spacecraft, in the context of NASA's current ambitious projects.
NASA is seeking to implement a unified monitoring system based on file transmission, operating at 20-second intervals. This system will allow detailed control over the operational state of each component, facilitating decision-making and preventive actions.
The "Apolo-11" program should be placed in the user's preferred folder.
Navigate to the program's location and execute it. After synchronization, the collected information will be stored in the {preferred_path}/devices directory.
Execution occurs every 20 seconds (adjustable).
Generated files follow the format: APL[ORBONE|CLNM|TMRS|GALXONE|UNKN]-0000[1-1000].log.
Random quantity of files (1-100) per execution. Semi-structured data: date, mission, device type, device status, and hash.
Mission names match the original project names. Hash is generated if the filename even if the device status is not "unknown."
Files named APLSTATS-[REPORT]-ddmmyyHHMISS.log. Analysis of events, disconnection management, mission consolidation, percentage calculation. File cleanup, moved to the "backups" folder.
File simulating a control board for data visualization.
- Project adaptable to different servers.
- Flexible design for changes in data generation and management.
- Seamless integration with future teams, tools, or processes.
- Valuation of additional ideas and implementations.
- YAML for configurations.
- LOGGING for event logging.
- TYPING for type annotations.
- ENTRYPOINT and MAIN for program execution.
- SYS ARGS and PARSEARGS for handling command-line arguments.
Simulated data mimics the behavior of real data, providing a safe way to test algorithms without associated risks.
Each file is associated with an execution cycle, ensuring precise control and optimal data management.
"python apollo11.py --config config/config.yml --project [ORBONE|CLNM|TMRS|GALXONE|UNKN]"
"Make sure to provide the --config argument with the path to the YAML configuration file."
The project includes a comprehensive set of unit tests. Run the tests using:
"pytest"
apollo11.py: The main script that orchestrates the simulation.
data_generator.py: Generates simulated data for devices in a mission.
file_manager.py: Manages generated files and moves processed files to backups.
report_generator.py: Generates consolidated reports based on simulated data.
dashboard_generator.py: Generates dashboards using accumulated data.
simulator.py: Coordinates the simulation cycles and handles interruptions.
config/config.yml contains project configuration settings like simulation interval and available projects.
Short-Term: Implement continuous integration for automated testing. Enhance error handling and logging for better debugging.
Medium-Term: Add functionality for dynamic project addition/removal. Improve the user interface for better user interaction during simulation.
Long-Term: Integrate with a web-based dashboard for real-time monitoring. Expand simulation capabilities to include external inputs and events.
Final Project Python for SoftServe
Tree
.
├── apollo11
│ ├── init.py
│ ├── simulator.py
│ ├── data_generator.py
│ ├── report_generator.py
│ ├── file_manager.py
│ └── dashboard_generator.py
├── config
│ ├── config.yml
├── backups
├── reports
|-- tests/
| |-- __init__.py
| |-- test_apollo11.py
| |-- test_dashboard_generator.py
| |-- test_data_generator.py
| |-- test_file_manager.py
| |-- test_report_generator.py
| |-- test_simulator.py
└── apollo11.py