What is it?
This is a web app with all the movies that Superuser has seen.
On init it creates a Superuser and adds some movies from his name. The app is meant for superuser's movies, but anyone can register, add some movies and play around
What is the purpose?
I built this app to get more comfortable with python and backend, touch GraphQL and write something clean and cool on React. I like pet projects:)
Tech stack:
The backend is python + flask with sqlite, sqlalchemy and both REST & GraphQL api options exposed. It also serves production build of frontend app
The frontend is React app with formik and apollo client, connected to backend via GraphQL.
Both frontend and backend folders have respective README.md files with more specifics
Requirements
Run ./scripts/setup.sh in root to install all requirements
what it does:
For backend it creates .venv with all dependencies installed (pip install)
For frontend it creates node_modules with all dependencies installed (npm i)
How to run the app in production mode
Run ./scripts/start_prod.sh in root
what it does:
Builds frontend app in production mode, puts it into correct folder in backend app and starts backend (frontend is built for prod, backend runs on dev server)
You can see the app on http://127.0.0.1:8000/
P.S. Backend graphql exceptions in console are completely normal, they are thrown and sent to frontend that gracefully handles them.
How to run the app in dev mode
Run ./scripts/start.sh in root
what it does:
Runs backend dev server on port 8000 and frontend dev server on port 3000
Automatically opens browser on port 3000 of localhost
Just Build
Run ./scripts/build.sh in root to build frontend for production and place it in correct folder in backend
To run the apps separately, look at their own README.md
Check out my Custom Table at ./frontend/src/commonComponents/CustomTable/CustomTable.tsx