Coder Social home page Coder Social logo

apollo11's Introduction

Apolo-11: NASA Monitoring System

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.

Project Description

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.

Execution Instructions

Program Location

The "Apolo-11" program should be placed in the user's preferred folder.

Program Execution

Navigate to the program's location and execute it. After synchronization, the collected information will be stored in the {preferred_path}/devices directory.

Execution Periodicity

Execution occurs every 20 seconds (adjustable).

File Naming

Generated files follow the format: APL[ORBONE|CLNM|TMRS|GALXONE|UNKN]-0000[1-1000].log.

File Generation

Random quantity of files (1-100) per execution. Semi-structured data: date, mission, device type, device status, and hash.

Naming and Hash Generation

Mission names match the original project names. Hash is generated if the filename even if the device status is not "unknown."

Report Generation

Files named APLSTATS-[REPORT]-ddmmyyHHMISS.log. Analysis of events, disconnection management, mission consolidation, percentage calculation. File cleanup, moved to the "backups" folder.

Control Board

File simulating a control board for data visualization.

Special Considerations

  • 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.

Technologies Used

  • 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

Simulated data mimics the behavior of real data, providing a safe way to test algorithms without associated risks.

File Structuring

Each file is associated with an execution cycle, ensuring precise control and optimal data management.

Usage

"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."

Testing

The project includes a comprehensive set of unit tests. Run the tests using:

"pytest"

Project Components

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.

Configuration

config/config.yml contains project configuration settings like simulation interval and available projects.

Improvements

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.

Apollo11

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

apollo11's People

Contributors

christyela avatar johan-jimenez avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.