This project was executed as a school assignment at the University of Twente. The project consist of multiple microservices that work together to form the online business of a typical cinema:movie_camera:. The services are mainly build with Spring Boot as its backbone, which is supported by html and css for the front-end. The application has been build to work both locally and also containerized in Kubernetes.
- School: University of Twente
- Course: Service-oriented architecture with Web services
- Assignment Type: Open Project
- Group Size: 2
- Eureka Discovery Server
- Zuul API Gateway
- Home Service
- Authentication Service
- Movie Service
- Food Service
- Reservation service
-
Setup your own email-client for the reservation service by editing the application.properties of this service (without this step the service will not work, but others will still function)
-
Run setupLocal.sh (wait for all services to boot up)
cd cinema_microservices
setupLocal.sh
- (Optionally) Open the Eureka server
https://localhost:8761
- Navigate through the website on port 8080
https://localhost:8080
The containerized setup will create (and delete) a completely new Minikube cluster. If you already have a cluster running you first have to delete this to get the setup to work. The services can also be implement on an existing cluster, however these steps are not provided here.
- Run setupContainer.sh (wait for it to finish)
cd cinema_microservices
setupContainer.sh
- Apply the ingress controller to the cluster
kubectl apply -f ingress.yml
- (Optionally) Open the Minikube dashboard
minikube dashboard
- Get the Minikube ip address
minikube ip
- Add the found minikube ip and the domain name cinetopia.ut to your /etc/hosts file:
minikubeIp cinetopia.ut
- Navigate through the website on cinetopia.ut
- Stop all processes (CTRL+C) that were started by executing setupLocal.sh
- Stop Minikube
minikube stop
- Delete the Minikube cluster
minikube delete