An interview preparation platform designed to facilitate live coding sessions between peers.
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
Ensure that you have the following:
- Docker
- Environment variables configured for the respective microservices
- Clone the repository.
- Set up the environment variables for the microservices.
cd
intofrontend
and all backend-microservices and typenpm install
- 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.
- If you run into database related issues, try to go into the respective folder of the failing service and type
- Run
npm start
and access the frontend by navigating tolocalhost:3000
in your browser.
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.