|
1 | 1 | [](https://classroom.github.com/a/bzPrOe11) |
2 | 2 | # CS3219 Project (PeerPrep) - AY2425S1 |
3 | | -## Group: Gxx |
| 3 | +## Group: G11 |
4 | 4 |
|
5 | | -### Note: |
6 | | -- You can choose to develop individual microservices within separate folders within this repository **OR** use individual repositories (all public) for each microservice. |
7 | | -- In the latter scenario, you should enable sub-modules on this GitHub classroom repository to manage the development/deployment **AND** add your mentor to the individual repositories as a collaborator. |
8 | | -- The teaching team should be given access to the repositories as we may require viewing the history of the repository in case of any disputes or disagreements. |
| 5 | + |
| 6 | + |
| 7 | +## Description |
| 8 | +PeerPrep is your go-to platform for collaborative learning and problem-solving. Connect with peers at your proficiency level to tackle curated questions, improve your skills, and collaborate seamlessly using our real-time audio chat and code editor. Find the perfect study partner, learn effectively, and level up your problem-solving with PeerPrep! |
| 9 | + |
| 10 | +Try out [PeerPrep](https://peerprep-mock-interview.duckdns.org) now! |
| 11 | + |
| 12 | +## Features |
| 13 | +1. Curated questions for every topic and proficiency level |
| 14 | +2. Real-time peer matching |
| 15 | +3. Persistent session recovery for accidental disconnects |
| 16 | +4. Live collaboration on code editor, with syntax highlighting supported |
| 17 | +5. Peer-to-peer audio chat support |
| 18 | +6. Secure authentication with OAuth support |
| 19 | +7. Multi-language code execution. (C++, Python and Java) |
| 20 | + |
| 21 | +## Architecture |
| 22 | + |
| 23 | + |
| 24 | +### Tech stack |
| 25 | +- **Frontend**: Nextjs, TailwindCSS, Shadcn, Zustand, Socket.io |
| 26 | +- **Backend**: Node, Express, Redis |
| 27 | +- **Database**: MongoDB |
| 28 | +- **Cloud**: Kubernetes, Docker, GCP |
| 29 | +- **CI/CD**: Github Actions, Google Cloud Run |
| 30 | +- **Message Broker**: RabbitMQ |
| 31 | +- **Logging**: Google Cloud Logging |
| 32 | +- **Audio Chat**: WebRTC, Turn, Stun |
| 33 | +- **Secure Connection**: Google Certificate Manager, Nginx |
| 34 | + |
| 35 | +## Setup |
| 36 | +1. Clone the repository. |
| 37 | +2. Install the dependencies for all services |
| 38 | +```bash |
| 39 | + pnpm install |
| 40 | +``` |
| 41 | +3. Add the required environment variables in the `.env.*` files. |
| 42 | +4. Start the services. |
| 43 | +```bash |
| 44 | + docker compose up --build |
| 45 | +``` |
| 46 | + |
| 47 | +## Contributors |
| 48 | +- [Kurt](https://kurt-lee.me) |
| 49 | +- [Simba](https://www.yipsinhang.xyz/) |
| 50 | +- [Siyuan](https://leesiyuan.me/) |
| 51 | +- [Youwei](https://github.com/tyouwei) |
| 52 | +- [Zhen Dong](https://github.com/ZD292) |
0 commit comments