Skip to content

Backend Microservices for our educational platform SkillSprint

Notifications You must be signed in to change notification settings

IsuruX98/SkillSprint-Backend

Repository files navigation

SkillSprint Backend

Welcome to the SkillSprint Backend Repository! This repository contains the backend services for our educational platform, SkillSprint, designed to provide a seamless learning experience for both learners and instructors.

Technologies Used:

  • Framework: Spring Boot
  • Service Discovery: Edureka Service Discovery
  • API Gateway: Spring Cloud Gateway
  • Database: MongoDB
  • Authentication: JSON Web Tokens (JWT)
  • Containerization: Docker
  • Orchestration: Kubernetes

Prerequisites:

  • Docker installed on your machine
  • Kubernetes installed and configured, such as Minikube
  • Kube Forward app installed (for port forwarding)
  • Java Development Kit (JDK) installed

Getting Started

  1. Clone the project repository:
git clone https://github.com/IsuruX98/SkillSprint-Backend.git
  1. Navigate to the yml folder:
cd yml
  1. Apply Kubernetes configurations for the services:
kubectl apply -f .
  1. Check the status of the deployed services:
kubectl get all

OR Use Minikube dashboard to monitor the status visually.

  1. Port Forwarding

    a. For Eureka Service Registry:

    kubectl port-forward service/eureka-lb 8761:80 -n default

    b. For Cloud Gateway:

    kubectl port-forward service/cloud-gateway-svc 9191:80 -n default

OR Use Kube Forward app, select the Minikube cluster, and add the following port forwarding configurations:

  • Resource Namespace: default
  • Kind: Service
  • Name: eureka-lb
  • Local Port: 8761
  • Resource Port: 80

Repeat the same steps for cloud-gateway-svc:

  • Name: cloud-gateway-svc
  • Local Port: 9191
  • Resource Port: 80
  1. Access the services:

API Documentation:

  • Detailed API documentation for each service can be found in the respective service directories or at [API Documentation URL].

Security:

  • Authentication is implemented using JWT tokens. Users must include their JWT token in the Authorization header for protected routes.

Scalability and Performance:

  • The backend services are designed with scalability and performance in mind, utilizing Microservices architecture and containerization with Docker and Kubernetes.

Additional Functionalities:

  • Email and SMS Notifications: Upon successful enrollment, learners receive confirmation via email and SMS using third-party services for sending notifications.

Contributors:

  • Isuru Madusanka
  • Yasiru Deshan
  • Chamith kavinda
  • Sehan Deemantha