Check it out live on streamlit cloud
Built to give you a dashboard view of the next few hours' forecast for New Hampshires 48 4,000 ft mountains. Gonna rain on the Kinsmans? Is it snowing on Washington? Should I hike Owl's Head?
Powered by Streamlit + Open Weather API. Specifically, Streamlit runs the web interactinos and OpenWeather provides the data.
Requires signing up for Open Weather API Account.
Considered using weather.gov feed, but found Avra on YouTube have success with Open Weather
- Copy or Rename
.env.example
as.env.dev
and fill in the OPEN_WEATHER_API_KEY for your account (should come via email)
mv .env.example .env.dev
Requires docker-compose to be installed (this comes with Docker Desktop).
docker-compose up
# Open localhost:8501
Use -d
to detach from logs.
Use --build
on subsequent runs to rebuild dependencies / docker image.
# Linting
docker-compose run streamlit-app nox.sh -s lint
# Unit Testing
docker-compose run streamlit-app nox.sh -s test
# Both
docker-compose run streamlit-app nox.sh
# As needed:
docker-compose build
# E2E Testing
docker-compose up -d --build
# Replace screenshots
docker-compose exec streamlit-app nox -s test -- -m e2e --visual-baseline
# Compare to visual baseline screenshots
docker-compose exec streamlit-app nox -s test -- -m e2e
# Turn off / tear down
docker-compose down
For code completion / linting / developing / etc.
python -m venv venv
. ./venv/bin/activate
# .\venv\Scripts\activate for Windows
python -m pip install -r ./streamlit_app/requirements.dev.txt
pre-commit install
# Linting / Static Checking / Unit Testing
python -m black streamlit_app
python -m isort --profile=black streamlit_app
python -m flake8 --config=./streamlit_app/.flake8 streamlit_app
- Containerization with Docker
- Dependency installation with Pip
- Test automation with Nox
- Linting with pre-commit and Flake8
- Code formatting with Black
- Testing with pytest
- Code coverage with Coverage.py
Utilizes Open Weather API Endpoints: