Coder Social home page Coder Social logo

marwanhawari / leetrooms Goto Github PK

View Code? Open in Web Editor NEW
107.0 107.0 19.0 5.86 MB

⚔️ Multiplayer rooms for LeetCode

Home Page: https://leetrooms.com

License: MIT License

Shell 0.02% JavaScript 3.07% TypeScript 71.29% CSS 2.81% HTML 1.99% Astro 20.82%
chat competitive-programming contest leetcode multiplayer rooms

leetrooms's People

Contributors

marwanhawari avatar smarttcoder avatar sulphemi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

leetrooms's Issues

[Bug] No direct button to hide the complete Panel

image

As could be seen in the image , there is no direct button to hide complete panel to focus completely on question , like in the image below one can click on the side bar to make leetroom appear.
image

Add chat pause on scroll

Right now, when new messages come in, the chat element will always snap to the latest message. When you scroll up in the chat, it would be nice if it paused the chat similar to on Twitch.

Add light mode for the extension

Currently, the LeetRooms extension only has a dark mode. The extension should also support light mode. This means adding new tailwind styles across all components.

Also, need a mechanism for detecting if it's light or dark mode. The easiest option is to read the lc-dark-side key from the LeetCode local storage. If the value is empty or light, then the UI is in light mode. If the value is dark, then the UI is in dark mode. The LeetRooms extension should behave the same way.

Configure difficulty?

Would be useful to have easier/harder distributions rather than the default Easy/Med/Med/Hard.

When solving problems not associated with the room.

When any participant in the room solves a problem and its a problem that wasn't one of the 4 problems. It shows up as submitted or solved. These probably should be only associated with the problems for the room.

Re-add extension toggle to completely hide LeetRooms panel

Distracting to show the side panel thing when not in use (e.g. during a contest). Right now, I'm just disabling the extension while not in use.

Could still keep this mini-panel's functionality, just need an extension-level way to disable the entire UI.
Screenshot 2023-06-21 175940

Leetroom panel not showing up in problem window at all

image
image

As shown in the attached images, the sidebar isnt showing up at all once you click on a question to get started.

after solving the problem and submitting it, if you go back a page, no submission "thumbs up" is shown nor is the scoreboard filled.

Security Vulnerability

I will disclose the security vulnerability to you privately, please contact me on discord. My username is killer.whale

If you have any other preferred methods of communication, let me know.

feat: keep users who have left the room in the scoreboard

Right now, when a user leaves the room, they are no longer displayed on the scoreboard. This means I can't look at the solutions of people who have solved the problems but left the room.

I want to change this so that I still see the users on the scoreboard even after they've left. I already retain the users submission data for the room even when the leave (that way if they rejoin the room their submission data is still there). The backend just needs to make sure to include the people who have already left and have a way to indicate that they have left.

I also want a visual way to distinguish between people on the scoreboard who are still in the room and those who have left. Maybe some change in font color or opacity?

bug: fix timer inconsistencies

There are currently 2 issues with the timer:

  1. Timer drift causes everybody's timer to be out of sync.

  2. The timer will pause if you go to a different tab for too long. When you come back it will resume, but the time will be completely wrong. Only after you refresh the page will the timer display the proper time remaining.

These fixes should be implemented purely in the React app. I don't expect any chrome extension or server changes to be necessary.

LeetRooms does not recognize submission result on leetcode's new Dynamic Layout

When I use the new Dynamic Layout on leetcode, LeetRooms won't update with the submission results.

I.e. I solve a problem in the current leetroom, hit submit and '<user> submitted' will appear in chat. However, on AC the text '<user> solved <problem>' won't appear and on theoretically solving the whole room, the final message (<user> solved room in <x> minutes or something) is also not shown.

I can switch back to Split View and the extension will work properly again. I have to resubmit all problems on Split View if I already submitted on the Dynamic Layout though.

Death mode rooms

There are regular rooms and then there are death mode rooms. When death mode is activated, the user gets only 1 wrong submission or tle. The second submission must be accepted! If second submission also fails, they are “eliminated”, i.e their score till then is finalised and subsequent accepted submissions are not counted towards the score.

Select Leetcode Problems

For right now, it appears that the plugin only gives a random set of problems. Being able to choose a set of problems for the room would be helpful for practice.

Add a warning if the user has disabled 3rd party cookies

LeetRooms relies on users enabling 3rd party cookies so that LeetRooms can fetch a user's login session from the LeetRooms backend while on LeetCode.com.

Some users report being able to register, but not being able to proceed past the login page (due to 3rd party cookies not being enabled).

Add a warning on the login page preventing the user from even logging in unless they have 3rd party cookies enabled. Give instructions on how to do this and explain why it's necessary.

Make side panel resizable

The right side panel for LeetRooms is currently a static width. Users should be able to resize like they resize the left side panel. This will involve making changes to the content.ts script rather than the React app. Ideally, it should look close in style and feel to the resizable element that already exists on the left side panel.

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.