Skip to content

CS3219-AY2324S1/ay2324s1-course-assessment-g17

Repository files navigation

Review Assignment Due Date

PeerPrep G17

Overview

An interview preparation platform designed to facilitate live coding sessions between peers.

Repository Structure

The repository consists of a frontend and multiple microservices on the backend, each serving a specific purpose to enhance the overall interview preparation experience.

.
├── frontend
├── backend
│   ├── question-service
│   ├── user-service
│   ├── matching-service
│   ├── collaboration-service
│   ├── forum-service
│   ├── chat-service
│   ├── help-service
│   └── api-gateway
├── serverless
└── docker-compose.yml

Setup

Local Deployment

Ensure that you have the following:

  • Docker
  • Environment variables configured for the respective microservices

Instructions

  1. Clone the repository.
  2. Set up the environment variables for the microservices.
  3. cd into frontend and all backend-microservices and type npm install
  4. Run docker-compose up in the root directory of the repository.
    • If you run into database related issues, try to go into the respective folder of the failing service and type npx prisma db push. Then, restart the command.
  5. Run npm start and access the frontend by navigating to localhost:3000 in your browser.

Deployment

PeerPrep is deployed on both AWS and GCP for scalability and reliability.

  • The frontend is deployed on AWS Amplify.
  • The backend is deployed on GCP Cloud Run, question storage (MongoDB Atlas), relational database needs (AWS RDS), RabbitMQ for message queuing (AWS EC2) and serverless functions for question scraping (GCP Cloud Functions, Cloud Scheduler).
  • CI is done using GitHub Actions.