Skip to content

Latest commit

Β 

History

History
92 lines (55 loc) Β· 1.97 KB

File metadata and controls

92 lines (55 loc) Β· 1.97 KB

49SQN Automation

A streamlined Streamlit-based dashboard for New Zealand Cadet Forces Squadron 49, providing tools for managing accounts, training programs, resources, and more β€” all in one place.


πŸš€ Features

  • πŸ” Account Management – Easily manage cadets and users.
  • πŸ“š Training Resources – View documents, manuals, and lesson plans.
  • πŸ“… Training Program Builder – Generate or review lesson plans and programs.
  • 🌐 Multi-language Support – Internationalization via gettext-compatible .po/.mo files.
  • 🎨 Custom Theme – Tailored layout with style.css and branding media.

πŸ—‚οΈ Project Structure

website/
β”œβ”€β”€ app.py                  # Main Streamlit app
β”œβ”€β”€ handlers/               # Data loading and configuration classes
β”œβ”€β”€ resources/              # Static files (CSS, images, locales, configs)
β”œβ”€β”€ sub_pages/              # Page routes (home, tools, account, etc.)
└── .streamlit/config.toml  # Streamlit UI config

πŸ“¦ Requirements

Install dependencies using:

pip install -r requirements.txt

πŸ–₯️ Running the App

From the website/ directory, run:

streamlit run app.py

🌍 Internationalization

Translation files for english are located in:

resources/locales/en-US/LC_MESSAGES/messages.po

πŸ“ Configurations

  • permission_structure.json – Ranks and permissions
  • syllabus.json – Training modules and stages
  • manuals.json – Official cadet manuals

πŸ–ΌοΈ Branding & Assets

Brand-aligned media is in resources/media/:

  • logo.png, icon.png, cadets_header.png

πŸ“ƒ License

This project is licensed under the terms of the MIT License. See LICENSE for details.


πŸ› οΈ Contributing

Got a feature idea or found a bug? Open an issue or submit a PR!


✨ Acknowledgments

Created for 49 Squadron (ATC), Royal New Zealand Air Force Cadet Forces.