├── frontend ├── .dockerignore ├── .stignore ├── chart │ ├── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── service.yaml │ │ ├── ingress.yaml │ │ ├── deployment.yaml │ │ └── _helpers.tpl │ └── Chart.yaml ├── dist │ ├── favicon.png │ ├── poster-aliens.png │ ├── poster-hacker.png │ ├── poster-thehat.png │ ├── poster-cloudatlas.png │ ├── 60c3b61b94a9ae77b3353552ab6d4772.jpg │ └── index.html ├── src │ ├── static │ │ ├── poster-aliens.png │ │ ├── poster-kube.png │ │ ├── poster-mobydock.png │ │ ├── poster-cloudatlas.png │ │ ├── poster-crashloop.png │ │ └── poster-thefinalizer.png │ ├── assets │ │ └── images │ │ │ ├── favicon.ico │ │ │ └── favicon.png │ ├── index.html │ ├── index.jsx │ ├── Loader.jsx │ ├── index.css │ ├── Users.css │ ├── Users.jsx │ ├── App.css │ └── App.jsx ├── .babelrc ├── bashrc ├── default.conf ├── Dockerfile ├── package.json └── webpack.config.js ├── rent ├── .stignore ├── chart │ ├── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── service.yaml │ │ ├── ingress.yaml │ │ ├── deployment.yaml │ │ └── _helpers.tpl │ └── Chart.yaml ├── target │ ├── maven-status │ │ └── maven-compiler-plugin │ │ │ └── compile │ │ │ └── default-compile │ │ │ ├── createdFiles.lst │ │ │ └── inputFiles.lst │ └── classes │ │ └── com │ │ └── okteto │ │ └── rent │ │ ├── RentApplication.class │ │ ├── ServletInitializer.class │ │ ├── controller │ │ ├── RentController.class │ │ ├── RentController$1.class │ │ └── RentController$Rent.class │ │ └── kafka │ │ └── KafkaProducerConfig.class ├── src │ └── main │ │ └── java │ │ └── com │ │ └── okteto │ │ └── rent │ │ ├── RentApplication.java │ │ ├── ServletInitializer.java │ │ ├── kafka │ │ └── KafkaProducerConfig.java │ │ └── controller │ │ └── RentController.java ├── Dockerfile └── pom.xml ├── worker ├── chart │ ├── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── worker-deployment.yaml │ │ └── _helpers.tpl │ └── Chart.yaml ├── bashrc ├── Makefile ├── .stignore ├── Dockerfile ├── pkg │ ├── database │ │ └── database.go │ └── kafka │ │ └── kafka.go ├── go.mod ├── cmd │ └── worker │ │ └── main.go └── go.sum ├── api ├── chart │ ├── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── api-service.yaml │ │ ├── api-ingress.yaml │ │ ├── api-deployment.yaml │ │ └── _helpers.tpl │ └── Chart.yaml ├── go.mod ├── bashrc ├── .stignore ├── go.sum ├── Makefile ├── Dockerfile ├── pkg │ └── database │ │ └── database.go ├── data │ └── README.md └── cmd │ └── api │ └── main.go ├── catalog ├── chart │ ├── values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── service.yaml │ │ ├── ingress.yaml │ │ ├── _helpers.tpl │ │ └── deployment.yaml │ └── Chart.yaml ├── .vscode │ └── launch.json ├── package.json ├── Dockerfile ├── .stignore ├── server.js ├── load.js └── data │ └── catalog.json ├── package.json ├── docs ├── architecture-diagram.png ├── demo-with-volume-snapshot.md ├── creating-db-snapshot.md └── architecture-diagram.svg ├── tests ├── Dockerfile ├── package.json ├── tests │ └── main.spec.js └── playwright.config.js ├── .gitignore ├── infrastructure └── chart │ ├── Chart.yaml │ ├── templates │ ├── kafka-service.yaml │ ├── mongodb-service.yaml │ ├── postgresql-service.yaml │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── postgresql-deployment.yaml │ ├── kafka-deployment.yaml │ └── mongodb-deployment.yaml │ └── values.yaml ├── .oktetoignore ├── .github └── workflows │ ├── preview-closed.yaml │ └── preview.yaml ├── .vscode └── launch.json ├── README.md ├── okteto.yaml ├── okteto-with-volumes.yaml └── LICENSE /frontend/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /rent/.stignore: -------------------------------------------------------------------------------- 1 | .git 2 | ? 3 | *.jar 4 | -------------------------------------------------------------------------------- /frontend/.stignore: -------------------------------------------------------------------------------- 1 | chart 2 | node_modules 3 | -------------------------------------------------------------------------------- /rent/chart/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | image: "" 3 | -------------------------------------------------------------------------------- /worker/chart/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | image: "" 3 | -------------------------------------------------------------------------------- /frontend/chart/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | image: "" 3 | -------------------------------------------------------------------------------- /api/chart/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | image: "" 3 | load: "" 4 | -------------------------------------------------------------------------------- /catalog/chart/values.yaml: -------------------------------------------------------------------------------- 1 | 2 | replicaCount: 1 3 | image: "" 4 | -------------------------------------------------------------------------------- /api/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Success! Your application will be available shortly. -------------------------------------------------------------------------------- /rent/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Success! Your application will be available shortly. -------------------------------------------------------------------------------- /catalog/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Success! Your application will be available shortly. -------------------------------------------------------------------------------- /frontend/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Success! Your application will be available shortly. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "mongodb": "^6.18.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /rent/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /worker/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Success! Your application will be available shortly. -------------------------------------------------------------------------------- /frontend/dist/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/favicon.png -------------------------------------------------------------------------------- /docs/architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/docs/architecture-diagram.png -------------------------------------------------------------------------------- /frontend/dist/poster-aliens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/poster-aliens.png -------------------------------------------------------------------------------- /frontend/dist/poster-hacker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/poster-hacker.png -------------------------------------------------------------------------------- /frontend/dist/poster-thehat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/poster-thehat.png -------------------------------------------------------------------------------- /frontend/dist/poster-cloudatlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/poster-cloudatlas.png -------------------------------------------------------------------------------- /frontend/src/static/poster-aliens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-aliens.png -------------------------------------------------------------------------------- /frontend/src/static/poster-kube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-kube.png -------------------------------------------------------------------------------- /frontend/src/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/assets/images/favicon.ico -------------------------------------------------------------------------------- /frontend/src/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/assets/images/favicon.png -------------------------------------------------------------------------------- /frontend/src/static/poster-mobydock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-mobydock.png -------------------------------------------------------------------------------- /frontend/src/static/poster-cloudatlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-cloudatlas.png -------------------------------------------------------------------------------- /frontend/src/static/poster-crashloop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-crashloop.png -------------------------------------------------------------------------------- /frontend/src/static/poster-thefinalizer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/src/static/poster-thefinalizer.png -------------------------------------------------------------------------------- /tests/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/playwright:v1.55.0-noble 2 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 3 | RUN corepack enable yarn 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | frontend/node_modules 2 | catalog/node_modules 3 | bin 4 | rent/.idea 5 | rent/target 6 | tests/test-results 7 | tests/playwright-report -------------------------------------------------------------------------------- /frontend/dist/60c3b61b94a9ae77b3353552ab6d4772.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/frontend/dist/60c3b61b94a9ae77b3353552ab6d4772.jpg -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/RentApplication.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/RentApplication.class -------------------------------------------------------------------------------- /api/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/okteto/movies 2 | 3 | go 1.24 4 | 5 | require github.com/lib/pq v1.10.5 6 | 7 | require github.com/gorilla/mux v1.8.0 // indirect 8 | -------------------------------------------------------------------------------- /frontend/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env", 4 | "@babel/preset-react" 5 | ], 6 | "plugins": [ 7 | "react-hot-loader/babel" 8 | ] 9 | } -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/ServletInitializer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/ServletInitializer.class -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/controller/RentController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/controller/RentController.class -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/kafka/KafkaProducerConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/kafka/KafkaProducerConfig.class -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/controller/RentController$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/controller/RentController$1.class -------------------------------------------------------------------------------- /api/bashrc: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | Welcome to your development container. Happy coding! 3 | EOF 4 | 5 | export PS1="\[\e[36m\]\${OKTETO_NAMESPACE:-okteto}:\[\e[32m\]\${OKTETO_NAME:-dev} \[\e[m\]\W> " -------------------------------------------------------------------------------- /rent/target/classes/com/okteto/rent/controller/RentController$Rent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/okteto/movies/HEAD/rent/target/classes/com/okteto/rent/controller/RentController$Rent.class -------------------------------------------------------------------------------- /worker/bashrc: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | Welcome to your development container. Happy coding! 3 | EOF 4 | 5 | export PS1="\[\e[36m\]\${OKTETO_NAMESPACE:-okteto}:\[\e[32m\]\${OKTETO_NAME:-dev} \[\e[m\]\W> " -------------------------------------------------------------------------------- /frontend/bashrc: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | Welcome to your development container. Happy coding! 3 | EOF 4 | 5 | export PS1="\[\e[36m\]\${OKTETO_NAMESPACE:-okteto}:\[\e[32m\]\${OKTETO_NAME:-dev} \[\e[m\]\W> " -------------------------------------------------------------------------------- /infrastructure/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: infrastructure 3 | description: Simple Helm chart for PostgreSQL, Kafka, and MongoDB 4 | type: application 5 | version: 1.0.0 6 | appVersion: "1.0.0" -------------------------------------------------------------------------------- /api/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: movies-api 3 | description: Rentals API for Movies App 4 | type: application 5 | version: 0.1.0 6 | appVersion: 1.0.0 7 | icon: https://apps.okteto.com/movies/icon.png -------------------------------------------------------------------------------- /rent/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: movies-rent 3 | description: Rent backend for Movies App 4 | type: application 5 | version: 0.1.0 6 | appVersion: 1.0.0 7 | icon: https://apps.okteto.com/movies/icon.png -------------------------------------------------------------------------------- /frontend/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: movies-frontend 3 | description: Frontend of the Movies App 4 | type: application 5 | version: 0.1.0 6 | appVersion: 1.0.0 7 | icon: https://apps.okteto.com/movies/icon.png -------------------------------------------------------------------------------- /worker/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: movies-worker 3 | description: Rentals worker for Movies App 4 | type: application 5 | version: 0.1.0 6 | appVersion: 1.0.0 7 | icon: https://apps.okteto.com/movies/icon.png -------------------------------------------------------------------------------- /catalog/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: movies-catalog 3 | description: Catalog backend for Movies App 4 | type: application 5 | version: 0.1.0 6 | appVersion: 1.0.0 7 | icon: https://apps.okteto.com/movies/icon.png -------------------------------------------------------------------------------- /rent/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: rent 6 | name: rent 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - name: rent 11 | port: 8080 12 | selector: 13 | app: rent 14 | 15 | -------------------------------------------------------------------------------- /api/.stignore: -------------------------------------------------------------------------------- 1 | .git 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # vendor folders 9 | vendor 10 | 11 | # Test binary, built with go test -c 12 | *.test 13 | 14 | # Output of the go coverage tool, specifically when used with LiteIDE 15 | *.out 16 | 17 | # dlv binary 18 | __debug_bin 19 | -------------------------------------------------------------------------------- /worker/Makefile: -------------------------------------------------------------------------------- 1 | BACKEND ?= $(OKTETO_NAME) 2 | 3 | .PHONY: build 4 | build: 5 | go build -o bin/$(BACKEND) cmd/$(BACKEND)/main.go 6 | 7 | .PHONY: start 8 | start: 9 | bin/$(BACKEND) 10 | 11 | .PHONY: debug 12 | debug: 13 | dlv debug --headless --listen=:2345 --log --api-version=2 cmd/$(BACKEND)/main.go 14 | -------------------------------------------------------------------------------- /frontend/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 || {key} | 57 | }) 58 | } 59 |
|---|
| 69 | {user[property]} 70 | | 71 | ) 72 | }) 73 | } 74 |