thuver104/CareLine360-WebApp-DistributedSystems
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
CareLine360 Deployment Guide (SE3020 Assignment 1) Architecture mode: Microservices only (monolith removed). 1. Prerequisites - Node.js 18+ - npm 9+ - Docker Desktop - Kubernetes cluster (optional: minikube / Docker Desktop K8s) 2. Clone and install frontend - git clone https://github.com/thuver104/CareLine360-WebApp-DistributedSystems.git - cd client - npm install 3. Configure environment variables - Create server/.env for shared runtime values used by containers: JWT_ACCESS_SECRET, JWT_REFRESH_SECRET, CLIENT_URL, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_FROM, SMSLENZ_USER_ID, SMSLENZ_API_KEY, SMSLENZ_SENDER_ID, PAYHERE_MERCHANT_ID, PAYHERE_MERCHANT_SECRET, JITSI_DOMAIN, JITSI_PREFIX - Create client/.env: VITE_API_URL VITE_SOCKET_URL (optional; keep empty unless a socket backend is running) 4. Build microservice images - docker build -t careline360/auth-service:latest -f server/services/auth-service/Dockerfile server/services - docker build -t careline360/patient-service:latest server/services/patient-service - docker build -t careline360/doctor-service:latest server/services/doctor-service - docker build -t careline360/appointment-service:latest server/services/appointment-service - docker build -t careline360/admin-service:latest server/services/admin-service - docker build -t careline360/emergency-service:latest server/services/emergency-service - docker build -t careline360/api-gateway:latest server/services/api-gateway 5. Run services locally (Docker) - Easiest way (recommended): powershell -ExecutionPolicy Bypass -File scripts/start-containers.ps1 - Stop all app containers: powershell -ExecutionPolicy Bypass -File scripts/stop-containers.ps1 Manual alternative: - Create network: docker network create careline-net - Start infra: docker run -d --name careline-mongo --network careline-net -p 27017:27017 mongo:7 docker run -d --name careline-rabbit --network careline-net -p 5672:5672 -p 15672:15672 rabbitmq:3-management - Start service containers with --env-file server/.env and service-specific PORT/MONGO_URI. 6. Service endpoints - api-gateway: http://localhost:1111/health - auth-service: http://localhost:3001/health - patient-service: http://localhost:5002/health/ready - doctor-service: http://localhost:5003/health - appointment-service: http://localhost:5004/health - admin-service: http://localhost:5005/health - emergency-service: http://localhost:5006/health 7. Frontend run - cd client - npm run dev 9. Verify deployment - kubectl get pods -n careline360 - kubectl get svc -n careline360 - kubectl get ingress -n careline360 10. Submission packaging - Include: source code, submission.txt, readme.txt, members.txt, report.pdf - Zip name format: GroupID_DS-Assignment.zip --- No need to run8. Kubernetes deployment - kubectl apply -f k8s/base/namespace.yaml - kubectl apply -f k8s/base/configmap/app-config.yaml - kubectl apply -f k8s/base/secrets/app-secrets.example.yaml - kubectl apply -f k8s/base/services/ - kubectl apply -f k8s/base/ingress/