Welcome to the IBM BR CIC Java Full Stack Experiential Learning. The experiential learning is designed for practitioners
seeking to enrich their Full Stack skills. The learning leverages the technologies in high demand by our clients.
These technologies are not limited too but include Java, Spring Boot, Spring Cloud, Docker, Docker Compose, Kubernetes,
Angular, and React. Upon successfully implementing the entire learning, there are eight components (containers) that
should be running simultaneously:
- Two UIs (Angular and React) running in parallel
- Four Spring Boot Applications
- Two Databases (SQL or NoSQL).
The ultimate goal is the Journey to the Cloud which is accomplished by deploying the application to a cloud platform of the your choice: AWS, Azure, IBM Cloud, Google Cloud, or Red Hat OpenShift.
Projects | Description |
---|---|
angular-ui | Angular UI Project |
api-gateway | Spring Boot Zuul API Gateway Service |
discovery-service | Spring Boot Eureka Discovery Service |
employee-db-docker-image | Contains Dockerfile for building MySQL Employee DB |
employee-service | Spring Boot Employee Service |
login-db-docker-image | Contains Dockerfile for building MySQL Login DB |
login-service | Spring Boot Login Service |
registration-service | Spring Boot Employee Registration |
react-ui | React UI |
- Install JDK 1.8 or later.
- Install Node JS
- Install Docker Desktop
- Preferred IDEs. However, feel free to use the IDE of your choice.
- Create a Docker Hub Account
- Create an IBM Cloud Account
- Create an IBM GitHub Account
- Fork the Git repository to make a copy in your repository.
If you need a refresher before you start, click the Udemy courses below or a tutorial of your choice.
- The Complete Java Development Bootcamp or a tutorial of your choice.
- The Complete Spring Boot Development Bootcamp or a tutorial of your choice.
- JavaScript Basics for Beginners or a tutorial of your choice.
- Git for Geeks: Quick Git Training for Developers or a tutorial of your choice.
The coding challenge should be completed in 4 to 6 weeks. Code snippets are included in the projects to speed along your progress. However, you must implement the missing code.
- Create MySQL Docker Images (Login and Employee Databases).
- Complete Login Service and Containerize.
- Complete Employee Service and Containerize.
- Run images using Docker Compose.
- Test with Postman and MySQL WorkBench.
- Implement Eureka Discovery and Zuul API Gateway Services.
- Validate Eureka Discover Service identified: Login, Employee, and API Gateway Services.
- Implement Security: oAuth, JWT, etc.
- Run using Docker Compose.
- Test Services via Zuul API Gateway.
- Start Kafka Training
- Implement Kafka Server using Docker Compose.
- Implement Zookeeper using Docker Compose.
- Implement APHQ/KafkaHQ using Docker Compose
(optional)
.- Implement Kafka DB (NoSQL) using Docker Compose.
- Implement Kafka Service using Docker Compose.
- Run Kafka module using Docker Compose.
- Test Kafka Services and AKHQ/KafkaHQ
(optional)
.- Run using Docker Compose.
- Test with Postman.
- Deploy backend on Minikube using Kubernetes.
- Deploy the application on a Cloud platform using Kubernetes.
- Cloud Platforms: IBM Cloud, AWS, Azure, GCP, or Red Hat Open Shift
- Test Services via Zuul API Gateway using Postman.
- Services must be running on a Cloud platform implemented using Kubernetes.
- Be prepared to discuss each service component.
- Full Stack: Angular and Spring Boot - 12.5 hours
- Go Java Full Stack with Spring Boot and React - 11.5 hours
- Implement and Containerize Angular UI.
- Ensure screen requirements are implemented.
- Test Angular UI against service components.
- Repeat above steps for the React UI.
- Run using Docker Compose.
- Deploy frontend and backend on Minikube.
- Deploy the application on a Cloud platform using Kubernetes.
- Cloud Platforms: IBM Cloud, AWS, Azure, GCP, or Red Hat Open Shift
- Test application via frontend. Angular and React frontends should be running in parallel.
- Deploy UI and Backend Services on Minikube.
- UI and Service components must be running on a Cloud platform using Kubernetes.
- Be prepared to discuss each application component.
- Both UIs must run in parallel
- Test services via UIs.