Git Product home page Git Product logo

sphinx's People

Contributors

boyeguillaume avatar michelducartier avatar tran-antoine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sphinx's Issues

Migration to JDA

Currently, the discord implementation uses discord4j. Unfortunately, this framework really isn't practical at all if we want to keep an imperative style for the implementation. JDA would be a better alternative, also somewhat written in reactive style but still much easier to deal with even without any intention of using a reactive style for the implementation (especially when it comes to error handling).

Improvement over the command architecture

As it is now, the discord command architecture is not very practical. Since there is no effective parsing, we often have to resort to using a lot of ugly solutions such as if args[x].equals("something"). A new architecture with maybe something like:

MyOption option = commandParser.get("name")

would be much better

add auto lobby deletion when idle

Now that we have the ability to limit how many rounds can be started at once, it is essential we implement a feature that destroys inactive lobbies

[CRITICAL] Abnormal heap usage

As reported by Heroku, the discord bot seems to be consuming a ton of RAM, much more than it should. According to the logs, a simple latex-generated image can cost up to 600M, which is absolutely ridiculous. We will need a profiler to detect where this problem is coming from.

Documents

Please update the docs. No information present on how can i download this application on my system.

improvement : acceleration of the database

Idea of improvement for the database

Research optimization and indexation

Update the database file in the following ways:

  • each entries as a different size
  • add an indexTable at the start of the database that contains the argument
    • each entry of the indexed table is of the following forms : numberEntry sizePara1 Para1 Pointer1 .... sizeParaN ParaN PointerN
    • file not loaded until required (lazy evaluation of files)

Optimization size

  • Compression algorithm

Support for adding information directly to the database

  • Adding support for adding information directly to the database without adding the trackedFile corresponding
  • Done by using a special CheckSum function that specify that the file doesn't exists and therefore the information cannot be updated
  • Enable the user to modify the information of the database and regenerate the corresponding file if required

Code cleanup

  • create a new database package

request: rearrage GameRound to ease customization ?

It would be cool if we had the option of creating a round "from scratch" (purely from a default round class), meaning that we could add any ending condition, score distribution, etc and the round would be fully generated from that, with a "general" behavior for onGuessReceived. The current architecture would need a few changes, since it is currently impossible (for instance you can't just add a NoGuessLeft ending condition, you also need to increment it in the onGuessReceived)

enhancement: add format property to TOML questions

I don't believe that the formatting of the answer as LaTeX or Default should be decide on whether or not the question possesses a given tag ! We could either add a new properties in the TOML or detect certain characteristic in the text (such as "\text",```java ). We could also add a keyword in the answer that decide the type of formatting (such as if answer starts with "LaTeX" format as LaTeX) or even better parse only certain area as Latex.

Originally posted by @mredstone6 in #62 (comment)

processors not applied in the right order

Let's take a submission example:
true

Assume two processors, clean-string followed by true-false. Currently, it seems as though they are used in the wrong order (if processors A and B, the raw input will be first processed with B then with A which isn't normal). The result of that issue is:

  • The true-false processor can't find a matching equivalent because of the extra spaces
  • The clean-string removes the spaces, final input = true
    But the expected value is True so the user gets 0

correctly update game upon player leaving

Currently, when a player leaves a game, the only thing that's done is that the player gets removed in the list. However, if a round was currently being played, it unfortunately still waits for their answer

request: major improvement over the "report" system required

As the title suggests, the current GameRoundReport system is terrible. Since it only allows the server to access a list of "raw" strings with no further indication, it is complicated to process this information and use it in a more advanced manner than just "print the raw strings". As a minor improvement, I already added a list of standings in the report that can be more easily manipulated, but the PollRound for instance does not yet have a solution for effectively retrieving the different couples player-answer

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.