ODU-CGA-CubeSat / sealion-mission-architecture

SeaLion Mission Architecture - ground station & flight software architecture for the joint CubeSat mission between Old Dominion University & Coast Guard Academy
https://odu-cga-cubesat.github.io/sealion-mission-architecture
MIT License
2 stars 10 forks source link
cubesat docs-as-code model-based-development model-based-systems-engineering software-architecture

= SeaLion Mission Architecture

The SeaLion Mission Architecture is a model of the Sealion Flight Software architecture, intended to guide an implementation, for the SeaLion Mission - a joint CubeSat mission between Old Dominion University (ODU) & Coast Guard Academy (CGA).

The SeaLion Mission Architecture is modeled using the Mach30 modeling language (https://github.com/Mach30/m30ml[m30ml]) for specifying references, stakeholder needs, user stories, & data structures, s.a., the https://odu-cga-cubesat.github.io/sealion-mission-architecture/#_satellite_health_data_packet[satellite health data packet].

This repository (repo) also structured as a https://mach30.github.io/dof/#_component[DOF-component] for defining the contents of the Mission ConOps as a collection of nested subcomponents, component interfaces, and component functions for generating bill of materials (BOMs) and assembly instructions for the SeaLion CubeSat.

Full documentation is available on https://odu-cga-cubesat.github.io/sealion-mission-architecture/.

This project also follows a https://www.writethedocs.org/guide/docs-as-code/[docs-as-code] approach, applying the same principles and practices of software development for documentation.

== Work-In-Progress

This project is currently undergoing a refactor, whereby the core modeling language will rebuild on top of https://linkml.io/linkml/index.html[LinkML] - a linked data modeling language, with considerations for mappings to the web ontology language (OWL) via the https://github.com/linkml/linkml-owl[linkml-owl] extension.

== Contribute

Want to contribute? Checkout our link:CONTRIBUTORS.adoc[Contributor's guide]!

== View the documentation locally

You can build the documentation site on a local desktop:

Note: It is recommended you run the following instructions on a Linux/Unix-like operating system. If you are on a Windows machine, consider installing https://docs.microsoft.com/en-us/windows/wsl/install-win10[Windows Subsystem for Linux].

=== Installing requirements

You will need https://git-scm.com/[git] to clone the project contents and https://podman.io/getting-started/installation[podman] to run the podman image that contains the dependencies needed for building the documentation.

. https://git-scm.com/downloads[git]. . https://podman.io/getting-started/installation[podman].

=== Cloning the repo

Clone the https://github.com/odu-cga-cubesat/sealion-mission-architecture[SeaLion Mission ConOps repo]. Don't forget to use --recurse-submodules flag, or else you won't pull down some of the code you need to generate a working site.

[source,bash]

git clone --recurse-submodules https://github.com/odu-cga-cubesat/sealion-mission-architecture.git cd sealion-mission-architecture

Note: If you accidentally cloned without using --recurse-submodules, you can run git submodule update --init --recursive to pull down submodules needed to generate a working site.

=== Building the documentation

Once you've cloned the repo & installed podman, run the buildDocs.sh script in the project root directory (Note: Linux users may need to prepend this command sudo). This will pull the podman images, as well as install node modules, needed for generating the sealion-mission-architecture page locally. You can view all locally installed podman images by running podman images.

[source,bash]

./buildDocs.sh

Once you run this step, you can locally view the documentation by opening dist/index.html in a web browser or by opening dist/sealion-mission-architecture.pdf in a pdf viewer.