Giter Club home page Giter Club logo

studyopenings's Introduction

studyopenings

StudyOpenings - Build mode

What is this?

A tool to help chess players memorize opening repertoires.

The tool lets you:

  • build repertoires by playing opening moves on a board and

  • study repertoires by repeatedly recalling one side of the opening lines.

Credits

Running locally

  1. Clone the repository.
  2. Install MongoDB if necessary. Then start a local MongoDB database instance:
$ mongod --dbpath ~/data/db --port 27017
[...]
waiting for connections on port 27017
  1. Copy the .env file which points the application to your local database:
studyopenings/ $ cp .env.local .env
  1. Run the server:
studyopenings/ $ npm install
studyopenings/ $ npm run start-dev
[...]
studyopenings is running!
Listening on 5000.
Using database path: mongodb://127.0.0.1:27017
  1. Go to http://localhost:5000.

Running tests

To run all the tests once:

studyopenings/ $ npm install
studyopenings/ $ npm run test
[...]
Ran all test suites.

To run the tests continuously as changes are made:

studyopenings/ $ npm install
studyopenings/ $ jest --watch

Author

Justin Venezuela • [email protected]http://jvenezue.la

studyopenings's People

Contributors

jven 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

Watchers

 avatar  avatar  avatar  avatar

studyopenings's Issues

Analysis Mode

A separate analysis mode with UCI engine that duplicates the current position while in training (what chesstempo already has if you have looked at this) in order to allow you to investigate variations why a certain move is wrong

Support multiple correct responses in repertoires

Feedback from a user:

"I noticed the problems that come with building a repertoire that has multiple responses from yourself, where you basically choose 1 random 'correct' response while studying. I think it would be very powerful to support multiple correct answers per response so that a ton of different variations can be practiced without having to build and switch repertoires. Loving the tool as is though!"

This is a feature that ChessTempo supports in their opening trainer. In study mode, if the user is prompted with a position that has two correct answers, they should be able to play either of them. Then the line would continue from whichever move the user chose. If the user does not choose any correct move, we could hint all of the correct options.

Add opening database to build mode

Although it's possible to have this using scid and chessbase it's really convenient to have this in studyopenings.com.

Option 1: Have a opening preset opening explorer already on studyopenings.com like chesstempo already does
Option2: allow user to import a database of games and view the opening moves as a tree

Confirm deletions before doing them, in treemodel

Referring to this (2019)
#2
This solution only warns you of permanent deletion if you press tie x on the repository list.

If you have a repository opened and you click to the first move, then on the trashcan, the complete repository gets deleted without warning or possibility to undo.

I lost a huge repository on the stafford gambit, plz fix.

Improve Registration

Could you

  • add registration with GitHub

  • lax the requirements for the password.

    • Do not heavily restrict or require the length of the password
    • Do not require or disallow different case
    • Do not require or disallow special characters

    Whenever you do one of these things, you may break my password scheme. Then I have to write the password down. Despite being unsafe, defying the purpose, it burdens work on me every time I log in, because I have to look it up.

Populate repertoire name when importing PGN

On import, we should be able to read the repertoire name from some PGN header, if it exists. If it doesn't, we can fallback to the "PGN imported on DATE:TIME" title we currently use.

We need to make sure that on PGN export, we also set this header with the repertoire name.

Why are these 2 lines considered illegal moves?

Really awesome tool you created. Exactly what I was looking for.

I was able to import 1 pgn successfully. The other is having a lot of problems (even though it came from chessable). I condensed it as much as possible to get it to allow to be imported, but even these 2 lines alone are throwing errors about illegal moves:

[White "103"]

1. c4 e5 2. g3 Nc6 3. Bg2 f5 4. Nc3 Nf6 5. e3 e4 6. d3 Bb4 7. Nge2 Ne5 8. dxe4

[White "104"]

1. c4 e5 2. g3 Nc6 3. Bg2 f5 4. Nc3 Nf6 5. e3 e4 6. d3 Bb4 7. Nge2 d5 8. O-O

Maybe I'm missing the problem?

Thanks

Add chess engine support to build mode

Have newest stockfish engine available on your website.

If possible with the UCI engine allow to play against engine mode to create openings.

Also, if possible allow UCI engine to pick random moves in openings (not necessarily the best move the engine has calculated)

Confirm deletions before doing them. Or add undo.

Right now deleting a move and deleting a repertoire are irreversible actions so accidentally doing them can lose a lot of data.

Either add an "Are you sure?" warning or make these actions undoable.

Make study mode feedback less obnoxious

Feedback from user: "Have the option to change or turn off the "correct move" response (just audio or a check mark or something) as for me personally the yellow border flashing is distracting and hurts my eyes a little."

Either change it for everyone or add a user preference.

Support PGN import.

Easier first step is to support entirely overwriting a repertoire with a PGN file (maybe initiated by a link from the "empty repertoire" message in Build mode).

Need a little more thought to support adding lines from a PGN import to an existing repertoire.

Make better UI for mobile browsers.

Maybe as simple as tweaking some CSS for mobile browsers.

From reddit: Also can we get larger arrows on the botto[m].. they are really small on mobile

Possible licensing issue

This uses chessground, which is licensed as GPL 3.0. This means any derivative work must also be released as GPL 3.0, and that includes this repository.

MIT is open source, but it's not free software.

issue with import feature

importing a pgn with a valid move says its an illegal move
Screenshot from 2021-08-04 10-29-51
it says Nge2 is not a legal move, but its a legal move, Nce2 is not a legal move
Screenshot from 2021-08-04 10-30-36

Show progress in study mode

From Reddit:

"I did have a bit more feedback (I actually gave feedback before about multiple correct answers). It appears that when I'm in Study mode, it will go through all of the possible lines, which is great! Would it be possible to give some sort of signal that I've completed all lines before it starts another random set?"

grabbing pieces before the computer moved

It would be nice to be able to grab a piece before the computer has moved.
Sometimes I want to move to quickly and grab a piece do the next move before the computer has made its move. But everytime it is annoying because I cannot grab the piece and so I have to grab it again after the computer moved.
Even better would be the possibility to premove.

Make the TreeView look more like a tree.

From Reddit: I'd like the notation to be slightly more clear with variations. There's an indent, but it's still a little tough on the eyes. I'd pursue something similar to the lichess study layout.

Some screenshots:

Lichess
image

ChessTempo
image

Allow reverting how scrolling works

I'm annoyed by how scrolling works oppositely to how it works on Lichess for instance. If you scroll down there you move forward, down the moves list. Maybe change that altogether to match common practice, or add a little user preferences section to allow user to decide? (I love the site btw!)

List of lines when study

Currently, if i played through a line (studying), i can't go back to that line but have to play through all lines in a repertoire at once. If I go back to review/build and then back to study, I start at the beginning.

Could you build something like a list of numbers for each line, which one can click on to play?

Anyway great tool, thx for building it.

Allow overspecified moves

If I try to import:

  1. Nf3

no problems. But the following errors:

  1. Ngf3

Some PGN sources will overspecify moves when one piece is in check, and this can trip me up

Allow repertoires to be reordered

One user noted they have 15+ repertoires. It would be very useful for them to sort them how they want so the repertoires are easier to find.

Understanding mode

Something new and into the future that no opening trainer software currently does. In order to understand openings and not just memorize them you not only need to be able to know WHY certain moves are good but WHY all the other moves are bad and the trainer currently says any move not entered into the repertoire is incorrect, which does makes sense. However, a feature that allows you to comment and store moves for bad moves so you understand why the other moves not in your repertoire are bad and visually see the bad variations on the board using analysis mode would be really great!

Add support to study from a given position

From user feedback: "Hi! Great app :) For feedback it would be great if the study mode would start variations from the point that they deviate from the main line. Right now the user has to move from move #1 for every line."

This could be addressed by allowing the user to say "study all variations from this PGN". Chesstempo supports this.

Debounce repertoire picker updates while renaming.

Right now renaming a repertoire will send a request to the server for each keystroke by the user (in order to update the name in the picker as well as in the input element). Should throttle/debounce these events for efficiency.

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.