Skip to content

Commit

Permalink
Merge pull request #114 from CS3219-AY2324S1/update-readme-with-deplo…
Browse files Browse the repository at this point in the history
…yment

Update README.md
  • Loading branch information
szelongq authored Nov 15, 2023
2 parents 0a768db + cf45fbb commit c8f7c63
Showing 1 changed file with 27 additions and 16 deletions.
43 changes: 27 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,20 @@
<h1 align="center">PeerPrep</h1>
<p align="center">PeerPrep is a technical interview preparation platform and peer matching system, where students can find peers to practice whiteboard-style interview questions together.</p>

---
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
Expand All @@ -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.

0 comments on commit c8f7c63

Please sign in to comment.