Project: ay2324s1-course-assessment-g57 created by GitHub Classroom
Peerprep is a collaborative platform for students to practice interview questions and receive feedback from their peers. It is a platform for students to learn from each other and improve their coding skills for potential interview questions.
Quick Links:
- Setup Locally
- Services
- Assignments - PeerPrep - Assignment 1 - Assignment 2 - Assignment 3 - Assignment 4 - Assignment 5 - Assignment 6
Currently, the website has been fully deployed with the respective microservices. You can visit the website here.
Alternatively, you may set up the application locally with the exception of question service, user service and video service. You can continue to use the hosted version of these three services. The following instructions will guide you through the setup process.
- NodeJS version >v18
- Ensure .env is cloned in the Frontend folder. You may refer to .env.sample. The .env file contains the environment variables required for the services to run. Ideally, the .env file should not be committed to the repository as it contains sensitive information but we have left the environment variables in the .env.sample file for your convenience.
- Clone the repository
- Install the dependencies for each service by running
npm install
/yarn install
in the respective service folders for Frontend, matching and collab service. - Open separate terminals for each service and run the following commands:
- Frontend:
yarn build
followed byyarn start
- Matching service:
npm start
- Collab service:
npm start
- Frontend:
Provides the user interface for the application, users will interact with the various services through the Frontend. Main hub for interaction between different services.
Provides the matching algorithm for the application, which will match users based on the question difficulty level selected.
Provides the questions for the application.
Handles user authentication and authorization.
Handles the video conferencing between users.
Handles the signaling between users.
To set up the entire application locally, follow the instructions on the various READMEs in the respective folders.
Switch to the assignment-5
branch of this repo and ensure your current working directory is the matching-service
folder.
npm install
This project uses NodeJS version v18.16.1.
Switch to the assignment-5
branch of this repo and ensure your current working directory is the matching-service
folder.
docker build -t matching-service .
docker-compose build
docker run -p 4000:4000 -p 5672:5672 -d matching-service
docker-compose up
There are 2 options to test the matching service:
-
Use the included
index.html
page within thematching-service
folder. It provides a basic UI that showcases the matching functionality.- Once the matching service is running, navigate to
localhost:4000
.
- Once the matching service is running, navigate to
-
Setup the entire PeerPrep application on your local machine and access the matching service from the frontend service. Specifically, you will need to start the following services to run PeerPrep:
- User service
- Question service
- Collab service
- Frontend service
- Matching service
- Video service (optional for testing matching service)
Follow the README instructions in the respective folders to setup the services locally.
Leetcode question service on GCP Cloud Run. Click here for more details.