GithubHelp home page GithubHelp logo

keshore / joy-of-system-design Goto Github PK

View Code? Open in Web Editor NEW

This project forked from interviewready/joy-of-system-design

0.0 0.0 0.0 47 KB

An online game to kindle the spark of system design in you.

License: MIT License

Shell 0.83% JavaScript 98.97% Dockerfile 0.20%

joy-of-system-design's Introduction

Game: The Joy of System Design

Kindles the spark of system design in less than 10 minutes.

Step 1. The user selects a design.

The player selects a design from a list of designs.

  1. YouTube Design.
  2. Instagram Design.
  3. TikTok Design
  4. WhatsApp Design
  5. Zoom Design

Step 2. The User views the incomplete design.

Each design has a corresponding graph. In this graph, the vertices are system design components. The edges can have text as shown.

Each component type will have an image, a description, and a video URL explaining it in detail. These can be shown on hover.

Sample: Complete Instagram System Design (not visible to users).

But the user will be shown a system that has half of its components removed. These slots will be chosen randomly every time a user asks for a design.

Design with empty slots (visible to users).

Step 3. The User completes the design.

The player is prompted to drag and drop components into empty slots in the system.

The components types may be

  1. Content Delivery Network
  2. Load Balancer
  3. Server
  4. Database

When all empty slots have been populated, the user may submit the design by clicking on a button.

Empty slots turns white after component placement.

Step 4. View and share result.

The game can have humorous statements after every attempt:

  1. YES! You aced it! ✔️
  2. Wow! That was excellent! ✔️
  3. Hey you, system design guru! ✔️
  4. Damn! Go ahead and build your scalable app now! ✔️
  5. You got the brains and the hardware! System Design for the win! ✔️
  6. Wow, you could be the next cloud architect! ✔️
  7. Ahh…so close! There's always a next time. ❌
  8. Oops! The design was almost there, almost… ❌
  9. Uh oh…that's not right! Come on, try again! ❌

Players may "View Explanation" under this message. This should show the user why their design isn't correct, along with each incorrect slot in red and it's corresponding right answer.

Sample explanation with placeholders in brackets:

  1. You should use a (load balancer) here! A (CDN) is not suited for (balancing requests)! To know more about (load balancer), click here [link opening load balancer video in new tab].
  2. That's right, good job using an (Application Server)[link opening Application Server video in new tab] here.
  3. That's right, good job using a (CDN)[link opening CDN video in new tab] here.
  4. You should use a (database) here! An (Application Server) is not suited for (storing data)! To know more about (databases), click here [link opening databases video in new tab].

The user ends with three options:

  1. Try the game again in case of failure (Reset the design page).
  2. Share the challenge with friends (link sharing to design page).
  3. Try another design (Go to listing page).

You can view the engineering requirement documents here.

You can download the game requirements here.

joy-of-system-design's People

Contributors

coding-parrot avatar s1ddh-rth avatar shubham-0819 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.