PeerPrep is a collaborative coding platform designed to bridge the gap in existing coding platforms. It allows users to team up and work on Leetcode questions together, fostering a collaborative learning experience. With features like real-time interaction and matchmaking, PeerPrep is ideal for those looking to tackle coding challenges in a team setting.
Main features of the application (User's Perspective)
- Collaborative Coding: Real-time shared editor with syntax highlighting
- Communication: Chatbox for users to discuss approaches to tackle the coding problem
- Match Making: Join a queue (Easy, Medium, Hard) and get matched with other users
- Code Execution: Run code against a suite of test cases to check for correctness of code
- Questions: A question bank synced with Leetcode that includes images and description
- Authentication: Personalized experience and privacy
- History: Track past questions successfully tackled / failed to tackle
- Custom Room: Create custom room to code with friends instead of matching with strangers
- Multiple language support: Code in Python, JavaScript, or Ruby
- Changing questions on the fly: Change question within a room without having to quit and rematch
PeerPrep is built to be a microservice, practicing database per service pattern.
- Horizontal Pod Autoscalers (HPA): Stateless services are equipped with HPAs to scale horizontally when a certain metric threshold is met, to handle spike load
- cert-manager: K8s cluster has cert-manager configured to provide TLS encryption between frontend and the cluster
- Configured with Ingress, Service, and Deployment resources