Webapp for frame section design

The webapp is deployed here.

The frontend is written in HTML5 and javascript, using Bootstrap, raw scripting of the HTML5 canvas element for the live sketch of the frame section, the library jsxgraph for plotting, and Webpack for packaging.

The backend runs Uvicorn on top of a Gunicorn server. It exposes a REST API using FASTapi. This wraps a python package that delegates the calculation to a python module written in Cython, which wraps a C++11 library. The latter takes care of 2D computational geometry calculations, and was written from scratch mostly based on existing literature. I devised the algorithm for splitting a set of polygons and disks into parts by a set of parallel lines, and for computing the geometrical properties of the parts.

The testing of the backend is carried out with Pytest on the python side and with Catch on the C++ side. The python part of the application is pip-installable using distutils, and the build system of the C++ part is Scons. The deployment is carried out with multi-stage Docker containers on Heroku.