A little web app with the following features:
- Backend is Python / Flask
- Frontend is TypeScript / React
- Deployment to Heroku as a Docker container via GitHub Actions
- Display historical weather data in a visx chart
In order to run locally, you first need to create a .env
file:
FLASK_APP=server.py
OPEN_WEATHER_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Run the flask app to serve out the web api
flask run
# Run the web development server to serve out the React app
# Web api calls will be proxied to the flask app (due to the "proxy" setting in "package.json")
npm run start
# Open the web app in a web browser
open http://localhost:3000
# Build the Docker image
docker build --tag flask-and-react .
# Run the Docker image in a container
docker run --rm --env-file .env --publish 5000:5000 --name flask-and-react --detach flask-and-react
# Open the web app in a web browser
open http://localhost:5000
# View the output logged by the flask app running in the Docker container
docker logs flask-and-react
# Stop the Docker container
docker stop flask-and-react