Update .gitignore, .gitlab-ci.yml, app.py, dockerfile, requirements.txt,...

Update .gitignore, .gitlab-ci.yml, app.py, dockerfile, requirements.txt, tests/__init__.py, tests/base_case.py, tests/simple_test.py files
11 jobs for main in 49 seconds (queued for 6 seconds)
latest
Name Stage Failure
failed
flake8 Static Analysis
  Stored in directory: /root/.cache/pip/wheels/8e/61/d3/d9e7053100177668fa43216a8082868c55015f8706abd974f2
Successfully built lazy-object-proxy wrapt
Installing collected packages: wrapt, pyparsing, lazy-object-proxy, toml, pyflakes, pycodestyle, py, pluggy, platformdirs, packaging, mccabe, isort, iniconfig, attrs, astroid, pytest, pylint, flake8
Successfully installed astroid-2.8.0 attrs-21.2.0 flake8-3.9.2 iniconfig-1.1.1 isort-5.9.3 lazy-object-proxy-1.6.0 mccabe-0.6.1 packaging-21.0 platformdirs-2.4.0 pluggy-1.0.0 py-1.10.0 pycodestyle-2.7.0 pyflakes-2.3.1 pylint-2.11.1 pyparsing-2.4.7 pytest-6.2.5 toml-0.10.2 wrapt-1.12.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
$ flake8 *.py
app.py:13:1: W391 blank line at end of file
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
pylint Static Analysis
app.py:13:0: C0305: Trailing newlines (trailing-newlines)
app.py:1:0: C0114: Missing module docstring (missing-module-docstring)
app.py:6:0: C0116: Missing function or method docstring (missing-function-docstring)

-----------------------------------
Your code has been rated at 5.71/10

Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1