Devlog 1 - Streamlit uploader + SQLite storage + basic flight plotting
Overview
Added a Streamlit app that lets me upload flight CSVs, stores telemetry in a local SQLite database, and plots Altitude vs Time. I also added a small test data script that generates synthetic 200 Hz flight logs so I can quickly test the interface without real rocket data.
What’s new
- Streamlit CSV uploader for flight data
- SQLite database for storing flight metadata and telemetry
- Altitude vs Time interactive plot using Plotly
- Synthetic flight generator (
test_data_writer) producing 200 Hz test flights
Data pipeline
- Upload CSV → validate → parse numeric values
- Store flight metadata in
flightstable - Store time-series data in
telemetrytable - Query SQLite → render plots in Streamlit
Challenges / friction
- CSV validation required enforcing numeric types for altitude and velocity
- Handled missing or invalid data during import
- Added duplicate filename detection to prevent overwriting flights
- Admin “Clear Database” flow required Streamlit
session_state+rerunhandling due to UI reset behavior
Design decisions
- Chose SQLite + pandas for simplicity and local-only operation
- Avoided external database dependencies to keep setup lightweight
- Kept CSV import as the ingestion layer for flexibility
- Added synthetic test data generator to speed up UI development and debugging
Next Steps
- Improve the upload UX (showing row counts and import status)
- Add per-flight summary stats
- Allowing CSV export from the database.
Having a lot of fun with this project, see you in the next devlog!
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.