Tech interviews can be a daunting task, especially for students either seeking for internships or looking for their first full time job. These questions can be daunting, especially when having to solve it on the spot during interviews.
Introducing PeerPrep! Your one stop solution to tech interview preparations. With our collaborative features, simulate real-life interviews and take turns role playing as interviewers. Match with partners based on similar question interests and tackle questions together!
Peerprep is available now on: http://peerprepg50.site~
deployment, history, code editor, submissions, chat,
- Try out questions our team specially picked for you
- Match with individuals of a similar standard and topic interest
- Collaborate in real-time with your matched partner through our inbuilt Chat and Code Editor
- Save question attempt and user information in your user accounts
- Test out your code against our sample testcases
Frontend: ReactJS, Redux, Yjs
Server: Express, Nodejs, SocketIO
Containerization: Docker
Databases: MongoDB, Mysql
Message Broker: RabbitMQ
- Ensure you have Docker Desktop (>= v4.22.2) installed (https://docs.docker.com/get-docker/)
- Ensure you have .env files for system variables, can refer to .env.example to check. If there are missing variables, please contact team members. (.env file needed at root-level and all services excluding client)
- Ensure at least 1 question present before trying the matching and collaborative features (see below on further instructions)
- In the root of the project
- run
docker-compose build
- run
docker-compose up
- run
There are 10 services that needs to be started individually should you choose to use npm to start the application.
Warning: .env.example provided is meant for running using docker-compose. To run using npm, please change all urls in the .env file to localhost. .env for certain services also requires additional fields only found in root-level .env
eg. http://api-gateway:5000 => http://localhost:5000
- Run
npm i
to install required packages
- In the
/client
directory, runnpm start
- In each of the
api/*
directory, runnpm run dev
- In each of the
socket/*
directory, runnpm run dev
- Services was started using docker-compose
- Mysql and MongoDB containers are currently running
- Open the terminal of the mysql container and run the following commands
- Run
mysql -u root -p peerprep
- Enter the password
example
when prompted - Run
source /dump/CreateUsers.sql
- If there are existing users, run
DELETE FROM users;
andDELETE FROM user_infos;
first
- If there are existing users, run
This creates an admin user account with privileges to manage the questions database
- Email:
admin@gmail.com
- Password:
password
This loads in our team's curated question list for easy setup
- In local machine's terminal, run
docker-compose exec mongodb mongorestore /data/dump
- This command can only be executed once