rocket-system-1080.mp4
This project involves developing a command control application for a newly established rocket launch station. The application must provide users with an interface to view the current status of rockets in the field in real-time and enable control of selected rockets through provided components. Additionally, users should be able to access real-time weather conditions via the interface to inform launch decisions based on environmental parameters.
- The application may experience delays in responding to REST API requests due to high electromagnetic interference, typically ranging from 0.4 to 2.3 seconds.
- The REST API service may return a 503: Service Unavailable error with a 20% likelihood.
- The rocket telemetry systems have a 10% chance of sending "faulty data."
- Real-time data from rocket telemetry systems is sent at 100 ms intervals.
- As a user, I should be able to view all rockets in the field with their respective information.
- As a user, I should be able to monitor the telemetry data and status of rockets in real-time.
- As a user, I should be able to view the cargo content carried by each rocket.
- As a user, I should be able to view the connection status of telemetry systems associated with each rocket.
- As a user, I should be able to launch each rocket through the interface.
- As a user, I should be able to monitor the current weather conditions in real time.
The application communicates with the provided backend application to fulfill the user stories outlined above. The backend exposes a REST API for retrieving rocket information and weather data. Additionally, each rocket has a telemetry service accessible via TCP for real-time data. The application collects data from these interfaces and presents it to the user through a user-friendly interface.
The application is developed using the following technologies:
- Redis: Used for caching and queuing telemetry and weather data.
- Express: Node.js framework utilized for backend development.
- Socket.IO: Enables real-time communication between the server and client.
- Docker: Containerization tool used for deployment.
- React: Added for a more structured and reusable user interface.
- Postman: Used to check all the endpoints.
- Reset Button: Added a reset button to reset the application state.
- Individual Rocket Connections: Enabled individual connections to each rocket, allowing for separate interactions.
- Used standard deviation techniques to clear the invalid data from the data stream.