From cf45fbbc3d0343aca695b079cf4df2fa411e8cca Mon Sep 17 00:00:00 2001 From: szelongq <72333104+szelongq@users.noreply.github.com> Date: Wed, 15 Nov 2023 14:24:07 +0800 Subject: [PATCH] Update README.md --- README.md | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d198042e..c5e00b4c 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,20 @@
PeerPrep is a technical interview preparation platform and peer matching system, where students can find peers to practice whiteboard-style interview questions together.
---- -Table of Contents -=== -- [Table of Contents] (#table-of-contents) - - [Introduction] (#introduction) - - [Project Setup] (#project-setup) - - [Prerequisites] (#prerequisites) - - [Setting up environment files] (#setting-up-env-files) - - [Running] (#running) - - [Running without Docker] (#running-without-docker) +## Table of Contents +- [Table of Contents](#table-of-contents) +- [Introduction](#introduction) +- [Project Setup](#project-setup) + - [Prerequisites](#prerequisites) + - [Step 1: Set up environment files](#step-1-set-up-environment-files) + - [Step 2: Run docker-compose](#step-2-run-docker-compose) + - [Step 3: Access Peerprep](#step-3-access-peerprep) +- [Deployment](#deployment) ## Introduction This project is a full-stack application that is built on a microservices architecture. The backend is built using NodeJS with Express, and the frontend is built using React. PeerPrep is an application that helps students prepare for technical interviews by allowing users to match up with each other to practice and simulate a real interview environment. -These are the following microservices that we built: +The following are the microservices that we built: 1. API Gateway Service 2. Auth Service 3. Chat Service @@ -28,15 +27,27 @@ These are the following microservices that we built: 7. User Service ## Project Setup -This section will tell you how to run the application locally (either through docker-compose or without docker-compose). +For our development environment, we use `docker-compose` to quickly set up all our microservices containers with one command. -## Prerequisites +This section will tell you how to run the application locally using `docker-compose`. + +### Prerequisites 1. [Docker](https://docs.docker.com/get-docker/) 2. [docker-compose](https://docs.docker.com/compose/install/) -#### Setting up environment files +### Step 1: Set up environment files There were 2 env files uploaded to Canvas, the instructions are on the README uploaded to Canvas. -#### Running -For our production/development environment, we use `docker-compose up --build` to build and run all the services; this can be done from the root directory of the project (the same level as you would see the `docker-compose.yml` in. +### Step 2: Run docker-compose +1. Navigate to the root directory of this repository (where the `docker-compose.yml` is) +2. Run `docker-compose` to build and run all the services + ``` bash + docker-compose up --build + ``` + +### Step 3: Access Peerprep +1. Open up your browser and navigate to http://localhost:3000/ +## Deployment +For deployment, we use Kubernetes to orchestrate our microservices. Kubernetes provides many benefits, such as load-balancing, auto-scaling and built-in service discovery. +Our microservices images are hosted in Docker Registry and deployed onto the cloud using Google Kubernete Engine (GKE). You may refer to our [README.md](./k8s/README.md) in the k8s folder for more information. \ No newline at end of file