I think streamlit is a great tool for python learners to get an introduction to full stack concepts.
Taking that idea and running with it, I’ve spun up 3 versions of the same app while upping the complexity on each version.
- Littlest (Just Streamlit + SQLite): https://share.streamlit.io/gerardrbentley/streamlit-fullstack/app.py
- Postgres (Streamlit + Postgres + Nginx w/ Docker): https://streamlit-postgres.gerardbentley.com/
- Postgres + Go REST api: https://st-pg-go.gerardbentley.com/
The frontend doesn’t change very much (at all…), but the backend sure does!. CRUD is old hat to a lot of developers, but many beginners need to understand the concepts before dealing with larger databases and separately deployed apis and reverse proxies.
I’ve only had time to get out a blog post on the littlest version, but I’ll try to update here when I can get to the other versions. I’d like to simplify the Postgres one, as it doesn’t need the nginx reverse-proxy with docker-compose. Also have had some success streaming Postgres notifications on row insert to an async loop in streamlit, which I’d like to explore more.
The last 2 are deployed on a linode vps behind nginx-proxy-manager; I actually had to add swap space to build the Go Image, so beware small RAM machines
Source code for the 3 versions are on github branches: