Skip to content

ElginL/PeerPrep

 
 

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 90.6%
  • CSS 7.2%
  • Dockerfile 1.6%
  • HTML 0.6%