This is an opensource project (implemented in a python/Django backend and an Electron Frontend for GUI) that was conceived in the
Aerospace Department at the Technical University of Kenya
. This project was initially used for the conceptual and detailed design of the aircraft shown below.
Currently it (backend) provides functionalities such as:
- Weight Sizing (empty weight, MTOW, Fuel etc),
- Wing Surface Area sizing
- Detailed Component Weight Calculations
- Lifting Line Theory
- Performace Sizing: Take-off, Climb, Cruise, Landing
- etc
Better documentation and Table Of Contents coming soon...
However, now it is being modified to be used for other types of General Aviation and Light Drone aircraft design. Hopefully soon there will be modules to work on Large Aircrafts and possibly Airships.
The main idea 💡 is that we can have a software that aggregrates all sizing, performance, weight estimation, cost analysis, Drag etc into one platform and reduce over-reliance on fragmented excel, matlab/octave, fortran scripts and incorporate modern visualisation and optimisation into the workflow.
- Prof. Snorri Gudmundsson
- Dr. Raymer
- Prof. Sadraey
- Nicolai
- Roskam
- Ajoy Kumar Kundu etc
NB: Majority of logic for the backend have already been implemented, the GUI is what is lacking
- [❌] Integrating Electron Framework to build GUI for Windows, MacOS and Linux environments
- [❌] Sharing the React Code with Electron and Web frontend.
- [❌] Django backend to store the data.
- [❌] Deploy the backend so that values can be synce across devices.
I invite anyone with any ideas to collaborate and add features.
- Download the files from the repo,
mkdir <some-directory>
cd <some-directory>
git clone https://github.com/geoffreynyaga/Kenya-One-Project.git .
- Its advised to create a virtual environment
virtualenv venv
- Activate the environent. For Linux/MacOS users use the command below
source venv/bin/activate
for windows users
cd venv/Scripts
activate.bat
- Install the requirements
a) Install python packages
pip install -r requirements.txt
b) Install npm packages
cd Frontend-Electron
npm install
.
├── CORE # python logic
│ ├── API
│ ├── database
│ ├── datasets
│ ├── engines
│ ├── jupyter
│ ├── machine_learning
│ └── weissinger
├── Frontend-Electron #GUI
│ ├── node_modules
│ ├── public
│ └── src
├── Kenya_One # Django Settings Module
│ └── settings
├── accounts
│ ├── api
├── docs #documentation
├── htmlcov #test coverage
├── initial_sizing
├── spreadsheets # excel files with implementation of the app
└── venv #python virtual env
- Rename the
.env.sample
file to a.env
file. Create a postgres database on called "kenya_one_db" or equivalently give it a custom name and make sure to change the value in the .env file. NOTE: If you don't have/use postgres, go to the local.py file inKenya_One/settings/
and in the Databases Section, uncomment the sqlite database settings and comment out the postgres settings. The SQLite database will be automatically created when you run the following commands.
a) run migrations
python manage.py migrate
b) create superuser
python manage.py createsuperuser
- Running the app
cd Frontend-Electron
npm run electron-dev
The projects uses pytest and black as the formatting option. The tests also check for consistencies on code format.
To initiate tests follow the steps below:
Run the pytest command
pytest
The testing results will be displayed and there will also be a htmlcov
folder generated inside the project that will contain the code coverage details.
. ├── CORE │ ├── API ├── Frontend-Electron ├── Kenya_One ├── accounts ├── docs #documentation ├── htmlcov #test coverage ├── initial_sizing ├── spreadsheets └── venv
Open up the folder and open the index.html
in your browser to see this information.