Skip to content
README.md 2.53 KiB
Newer Older
Markus Mößler's avatar
Markus Mößler committed
# aidaho-tinkering-club-web-app

## Overview
Markus Mößler's avatar
Markus Mößler committed

Markus Mößler's avatar
Markus Mößler committed
This is the GitLab repository prepared to illustrate the development of a (full-stack) web application with Python Tornado and a Postgresql database in the backend and React in the frontend as a multi-container Docker application.

Please check out the GitLab page: [Gitlab aidaho-tinkering-club-web-app/page/index.html](https://mmoessler.aidaho-pages.uni-hohenheim.de/aidaho-tinkering-club-web-app/)

Note: This is "work in progress"!

Potential future steps:

* Deployment procedure
* Addition of an nginx revers proxy
Markus Mößler's avatar
Markus Mößler committed

## Apporach
Markus Mößler's avatar
Markus Mößler committed

This repository contains several branches, with each branch containing a different step in the development of the application.
Markus Mößler's avatar
Markus Mößler committed

Use `git diff tornado-backend-stage-01:tornado-backend/blog.py react-tornado-api-stage-01:tornado-backend/blog.py` to compare individual files across branches.
Markus Mößler's avatar
Markus Mößler committed

### Step 1
Markus Mößler's avatar
Markus Mößler committed

* Starting point is the [Tornado blog demo on GitHub](https://github.com/tornadoweb/tornado/blob/master/demos/blog/blog.py).
* The replication of the Tornado blog demo can be found on branch `tornado-backend-stage-01`.
Markus Mößler's avatar
Markus Mößler committed

### Step 2
Markus Mößler's avatar
Markus Mößler committed

* React frontend on top of the Tornado backend.
* This can be found on branch `react-frontend-stage-01`.
Markus Mößler's avatar
Markus Mößler committed
* Main changes:
  * Addition of the `react-frontend` directory.
  * Addition of the `react-frontend/my-react-app` directory with the react source files created by `create-react-app`.
Markus Mößler's avatar
Markus Mößler committed

### Step 3
Markus Mößler's avatar
Markus Mößler committed

* Tornado backend as an API for the react frontend.
* This can be found on branch `react-tornado-api-stage-01`.
Markus Mößler's avatar
Markus Mößler committed
* Main changes:
  * Addition of `react-frontend/my-react-app/src/components/MessageComponent.js` with an API call to the Tornado backend
  * Update of `tornado-backend/blog.py` with a route and handler to handle requests from `MessageComponent.js`
Markus Mößler's avatar
Markus Mößler committed

Markus Mößler's avatar
Markus Mößler committed
### Step 4
Markus Mößler's avatar
Markus Mößler committed

* (Full-stack) replication of the Tornado blog demo with react (frontend) and Tornado (backend).
* This can be found on branch `react-tornado-blog-stage-01`.
Markus Mößler's avatar
Markus Mößler committed
* Main changes:
  * Addition of additinal components in the frontend
  * Addition of additional routes and handlers in the backend
Markus Mößler's avatar
Markus Mößler committed

Markus Mößler's avatar
Markus Mößler committed
## Further Notes,

The documentations in the `./doc` directory as `.md` file can be rendered to the `./page` direcotry using,

```bash
pandoc -s xyz.md -o ../page/xyz.html --verbose
```

The slide show in the `./page` direcotry can be rendered to the `./page` direcotry using,

```bash
pandoc -t revealjs -s aidatho_tc_web_app_presentation.md -o aidatho_tc_web_app_presentation.html --include-in-header=header.html --slide-level=2 --citeproc --csl=apa-5th-edition.csl --bibliography=references.bib --verbose
```