The Luther Navigator project seeks to provide students a way to share their experiences abroad.
$ git clone https://github.com/LutherNavigator/LutherNavigator.git
In order to build and run the application, run the following command:
$ heroku local web
After the local deployment, the built application can be accessed at localhost:3000.
Several testing packages are used:
For getting more help on running the tests, execute the following:
$ python3 scripts/test.py -h
It is also possible to interface with the MySQL database. In order to achieve this, run:
$ python3 scripts/db.py
Our backend is divided into routes and services. The routes handle the routing and rendering. Routes will, if necessary, make use of the services. The services make database queries. This is done using the NPM package mysql.
It is also possible to change administrators from the terminal. In order to get more help, run the following:
$ python3 scripts/admin.py -h
No frontend frameworks are used. Everything is kept simple with the only special thing being the NPM package express-handlebars for HTML rendering.
The application is deployed to Heroku. It can be found at luthernavigator.com.
Coverage numbers are shown above. More detailed coverage report is available at luthernavigator.github.io/coverage/.
Packages TypeDoc and
typedoc-neo-theme are used
for generating the project code documentation. It includes annotations for
virtually all of the important functions, classes, declarations, etc.
Documentation can be generated by executing npm run document
. For viewing the
documentation, open the file documentation/index.html
.
Tests are run automatically on push or pull request. GitHub Actions reports can be accessed here. Documentation also gets generated automatically and gets pushed to docs repo.
The codebase is developed in a style-consistent manner. Black and Prettier are used for formatting Python and CSS/HTML/TypeScript code respectively.
Commands:
prettier --write --print-width 79
black --line-length 79
Variable and Function naming conventions:
snake_case
camelCase
Import Statements
import
statements first, followed by from
importsfrom
imports)Generated using TypeDoc