Skip to content

sltsheryl/peerprep

 
 

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.

About

ay2324s1-course-assessment-g17 created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.6%
  • Python 0.8%
  • CSS 0.8%
  • HTML 0.7%
  • Dockerfile 0.6%
  • JavaScript 0.4%
  • PLpgSQL 0.1%