Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.95 KB

README.md

File metadata and controls

53 lines (42 loc) · 1.95 KB

MDOODZ6.0 with the web interface

Overview

This project is the extention of the Thibault Duretz C code https://github.com/tduretz/MDOODZ6.0/

Consists of 3 systems

  • Front-end (Nuxt.js)
  • Server (Python flask)
  • MDOODZ6.0 source code (C language)

Prerequisites

  • Node.js & npm
  • Python 3.7 & pipenv
  • GCC, SuiteSparse, HDF5 (can be installed with Homebrew, apt, apt-get or any other package manager)

Setup

  1. Clone the repository
  2. 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 and LIBRARY_PATH
  3. Install python modules with pipenv install
  4. Install js modules with npm ci

Run in development mode

For server:

flask run

For client:

npm run dev

Client will be available at the address http://localhost:3000/

Development

Code style

Please note that aligning variable declarations with the whitespaces considered to be a bad practice. Always use one whitespace before and after =

Variable namings

  • For С and Python variables use snake_case, for JavaScript camelCase
  • For DTO (Data Transfer Objects) snake_case is used always

Server

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.