Open Bios-Marcel opened 4 years ago
I am currently working on the selection component over at https://github.com/scribble-rs/multi-item-picker
Will probably take me a while to get it working well.
UPDATE
I've started making a new frontend a while ago. I am working on it over at https://github.com/scribble-rs/frontend. The plan is to fully replace the homepage at first. This replace of the homepage might drop some existing feature, but also bring in some new ones. I have finished the multi item picker component in the new frontend, meaning it would be ready to select multiple (technically custom) wordlists.
Now the server needs to prepare for this as well.
I'll be closing other issues in favour of this one.
Problem
Currently there's a set of fixed languages with fixed words. Not all languages necessarily have the same words and there might be translation errors. The user has to decide for one language and will have to play with all the words in it and can't choose to for example exclude car related words. Additionally, custom lists have to saved locally and can't be synced properly between people.
Summary
Language
in the UI)Custom Words=> WordpackLanguage
TODO Split this into multiple issues, for the advanced features.
Solution
If a user could just choose multiple sets of words, it would be easy to play a round where everyone likes the given words and it doesn't easily get boring if there's enough sets.
The component for this should be an autocomplete textfield where you can select multiple items. Similar to how the tag selection on StackOverflow works:
The default would be a set called something along the lines of
English - basic
containing multiple thousand simple english words that most people would be able to understand. On top of that there will be certain theme-based default sets and sets for other languages than english.All other sets will be user-created. The current homepage will be split into two tabs. The
Create Lobby
tab and theWord Gallery
tab. Since I am planing to keep scribble.rs account-less, you should be able to create and edit any set via a custom password that you choose upon set-creation. If you loose the password, you are fucked :D. An already existing set can also be exported for usage in your own custom instance for example. Maybe there'll be regular dumps to a repository so that other scribble.rs instances can sync up with the main instance.Language packs should have a voting mechanism. If for example there's 10
English - Pop Culture
packages, not all of them might be of the same quality. The voting mechanism allows people to not always select the trashy ones. On top of that the creation date and last edit date should be displayed.Technical
This will require statefulness across scribble.rs application sessions, therefore we need some kind of database. It would be quite cool if people could access the main word gallery from within there instance. Therefore it might be cool to internally use the REST-API even though there'll be a slight overhead. As for persistance, I'd simple go for sqlite, as it's basically a non-dependency installation-wise.
To keep hosting simple and keep allowing ephemeral hosting (Data lost on restart), we'll simply specify some directory that we expect our data to be in. The data can be mounted into a docker contaienr for persistence then. Since we want to keep hosting accessible, we'll not use a database, instead we'll simply write into basic files, where the file name is the password and the content the wordlist.
If more complexity is required at some point, we can simply run a migration.