This project re-implements the central server and astronaut flight software for Dr. Magwood's 'Orbit' suite of software written for OCESS.
For a guide on if and how you should contribute, read CONTRIBUTING.md
For a guide on how to set up your text editor to edit code, read DEVELOPING.md
For a guide on how the actual OrbitX codebase is structured, read ARCHITECTURE.md
This project is maintained by
- Patrick
- Ye Qin
- Sean
As part of CS493 and CS494, a final year project course at Waterloo.
If your a first-time contributor to OrbitX, take a look at CONTRIBUTING.md
,
especially if you don't recognize the git clone
command in the Project Setup
section. The CONTRIBUTING.md
has helpful tips for first-time contributors.
If you run into any issues during setup, feel free to email me,
patrick.melanstone on gmail. For step-by-step explanations of these
instructions, read CONTRIBUTING.md
.
It's recommended you develop and run in a virtualenv. Setup is as follows:
First, fork your own copy of orbitx
on GitHub (you'll need a GitHub account
for this). See below for windows-specific changes. Then,
git clone https://github.com/your-github-username/orbitx
cd orbitx
python3 -m venv venv # or however you can create a python3 virtualenv
source venv/bin/activate
pip install --upgrade pip # not required, but a good idea
cd orbitx
make install # installs packages in requirements.txt, make sure you've activated your venv!
If you're on windows, replace source venv/bin/activate
with
Scripts\Activate.bat
on cmd
, or Scripts\Activate.ps1
if you know you're
running powershell. Also you'll have to just run the make commands manually, by running cat Makefile
and copying the command you want.
And when you want to restart development, just do:
cd orbitx
source venv/bin/activate
This project is mostly python, which does not require you to build a new binary
after making changes to .py
files. However, making changes to the
orbitx.proto
file requires building your changes. The file orbitx/Makefile
will
let you do the following commands in orbitx/
:
make build # run this when you make a change to orbitx.proto
make install # run this once, to set up this project
make format # run this to automatically format code
orbitx.py
Is an executable python script. Run python orbitx.py --help
for
the CLI args, or just run python orbitx.py
for a graphical launcher.
If you get errors, make sure you have the pip packages in requirements.txt
installed. If the setup instructions completed without errors, this is as easy
as running source bin/activate
.
Read ARCHITECTURE.md
for a description of OrbitX's architecture.