This project is the extention of the Thibault Duretz C code https://github.com/tduretz/MDOODZ6.0/
- Front-end (Nuxt.js)
- Server (Python flask)
- MDOODZ6.0 source code (C language)
- Node.js & npm
- Python 3.7 & pipenv
- GCC, SuiteSparse, HDF5 (can be installed with Homebrew, apt, apt-get or any other package manager)
- Clone the repository
- Copy-paste .env.example to .env - this is where all environmental variables are stored. You will need to put yours system's
COMPILER_LOCATION
,C_INCLUDE_PATH
andLIBRARY_PATH
- Install python modules with
pipenv install
- Install js modules with
npm ci
For server:
flask run
For client:
npm run dev
Client will be available at the address http://localhost:3000/
- Python PEP8 style guide https://www.python.org/dev/peps/pep-0008/
- For C we may use Google C++ Style guide: https://google.github.io/styleguide/cppguide.html
- For Nuxt.js project will be implemanted linted
Please note that aligning variable declarations with the whitespaces considered to be a bad practice. Always use one whitespace before and after =
- For С and Python variables use
snake_case
, for JavaScriptcamelCase
- For DTO (Data Transfer Objects)
snake_case
is used always
Is used as a layer between the MDOODZ6.0 source code and the front-end. Also it is used for working with MDOODZ6.0 output files (visualising) and potentially to extend MDOODZ6.0 functionality.
Server connects with frontend using REST API provided by the lightweight flask framework.
For each feature there is a package where API endpoints are set in _controller.py
files,
business logic encapsulated in a _service.py
, and the structure of the transferred data is set in _dto.py
.
Internal auxiliary tools are stored in /utils
package.