Skip to content
 
 

Repository files navigation

PeerPrep

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.

Project Documentation

Features

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

Architecture

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

Tech Stack

About

Collaborative website for users to tackle coding problems together

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages