Service | Port |
---|---|
API Gateway | 8765 |
User Service | 8000 |
Course Service | 8100 |
Notification Service | 7000 |
Enrollment Service | 8300 |
Content Service | 8400 |
API Gateway User Service Course Service Notification Service Enrollment Service Content Service
- Node.js (v16 or higher).
- pnpm (v6 or higher).
- Email functionality is provided through Gmail and as such will need a pair of credentials to authenticate with it. This can be as simple as using a App Password.
- A MongoDB and a Redis data source.
- A Stripe account with its API keys.
pnpm install
- Installs all dependencies for all packages/appspnpm build
- Builds all packages/apps using Esbuild. This must be executed before trying to run any of the apps.pnpm dev
- Runs a development server for all apps.pnpm test
- Runs the test suites for all apps.
Deployment is handled automatically by GitHub Actions when a commit is pushed to the master branch. The services are containerized and push to the Dockerhub as Docker images. These images are then pulled by an ArgoCD instance running on a Kubernetes cluster and deployed to the cluster. All of the kubernetes manifest required for this process can be found at the following repository. The process of updating these manifests has been automated. The Kubernetes cluster can be on any cloud provider, but this project uses a local one bootstrapped through Docker Desktop.