A LeetCode clone. See it live at http://34.149.185.114/!
- Backend: NestJS, MySQL, Redis, RabbitMQ
- Frontend: React
- Deployment: Docker, Kubernetes
- Judging system that supports 3 programming languages (Javascript, Python 3, and C++ 11).
- Ranking system, see how you perform against others.
- Submissions filtering, learn from other users' submissions.
The provided Kubernetes manifests are meant to be applied to Google Kubernetes Engine cluster. You need to prepare the following things:
- Create a cluster in Google Kubernetes Engine
- Configure
kubectl
andgcloud
CLI to connect to the cluster, you can follow this guide. - Reserve a static IP address for the Ingress, you can follow this guide. The name of this IP will be put in the Ingress's manifest, under
kubernetes.io/ingress.global-static-ip-name
annotation.
-
If there is an
.env.example
file in the manifest directory, copy it to a.env
file within the same directory then fill in the values. Here is an example. -
The environment variables for the frontend is an exception, it should be set in its Dockerfile. I am still working on this.
-
Go to the deployment scripts directory, then run the following in order:
./deploy-infrastructure.sh
./deploy-database-migrator.sh
./deploy-backend.sh
./deploy-frontend.sh
./deploy-ingress.sh