PeerPrep is a technical interview preparation platform and peer matching system, where students can find peers to practice whiteboard-style interview questions together.
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.
The following are the microservices that we built:
- API Gateway Service
- Auth Service
- Chat Service
- Collab Service
- Matching Service
- Question Service
- User Service
For our development environment, we use docker-compose
to quickly set up all our microservices containers with one command.
This section will tell you how to run the application locally using docker-compose
.
There were 2 env files uploaded to Canvas, the instructions are on the README uploaded to Canvas.
- Navigate to the root directory of this repository (where the
docker-compose.yml
is) - Run
docker-compose
to build and run all the servicesdocker-compose up --build
- Open up your browser and navigate to http://localhost:3000/
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 in the k8s folder for more information.