Giter Club home page Giter Club logo

wikireveal.com's Introduction

Wikireveal

A multilingual version of redactle.com published at wikireveal.com

Redactle is a daily browser game where the user tries to determine the subject of a random obfuscated Wikipedia article chosen from Wikipedia's 10,000 Vital Articles (Level 4).

This version is focused on user contributions & open source with a focus on implementing multiples languages by letting anyone contribute easily.

Technical Stack

This app/website uses PHP and Symfony as well as some vanilla Javascript. It aims to be the simplest stack possible, so anyone could contribute.

Local development

The project comes with a Dockerfile, so you can bootstrap your dev env in no time, the image is published at jrmgx/wikireveal

Run all the project commands with this line: docker run -it --rm -v "$(pwd)":/app -p 8000:8000 jrmgx/wikireveal COMMAND

You should make an alias like this: alias wikireveal="docker run -it --rm -v "$(pwd)":/app -p 8000:8000 jrmgx/wikireveal". Now you can start any command easily like wikireveal bin/console app:build (this notation will be used in the doc from now).

Local server

To ease the dev process, the project comes with a local server that shows the last daily puzzle. This allows you to take benefit of Symfony tooling.

First you must install the dependencies with: wikireveal composer install then start the local server: wikireveal symfony server:start and head out to http://localhost:8000

Static Generator

The project is basically a static website generator, the command: wikireveal bin/console app:build will generate the daily puzzle ready to be published.

You can test the generated result via: wikireveal php -S 0.0.0.0:8000 -t docs. It will start a dumb PHP server where you can check for the result.

It uses Github action to compute the new puzzle every day.

Limitations

The language interface will work for some languages, but not all. It is probably more suited for latin based language, but any contribution is welcome.

Contributing

If you like, you can try to implement your own/favorite language and open a PR to get it integrated. Other type of contributions are welcome too, navigate to the issues tabs and pick your favorite!

Implement Your Language

Adding a new language should be as easy as implementing the App\Language\LanguageInterface. This interface is heavily documented and if you need some example you can have a look at the FrenchLanguage implementation.

Please start a first draft, make a PR and let us talk about it to make it work together.

Coding style

There is no framework on the CSS/Javascript side, so it is easy for anyone to pick it up.

The coding style is enforced by PHPCS and ESLint, you can simply launch those command before sending your PR: wikireveal composer phpcs-fix and wikireveal composer eslint-fix

Donate to Wikipedia

Please consider a donation to Wikipedia

wikireveal.com's People

Contributors

jrmgx avatar lyrixx avatar pyrech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wikireveal.com's Issues

Save current progress in multiple languages

If you play the french version and then the english one, you will lose your progress

It would be nicer to keep track of every lang (and even the full or most history โ€” previous days)

English

Add english but still point to redactle (giving both option english and redactle)

Make a homepage

The idea is to present the projet and allow player to choose between implemented languages

Auto scroll to found word in option

For now, when you find a word, the text will auto scroll to the position.

The idea is to add a checkbox near/under the guess button giving the option to auto scroll or stay in place.

Focus back the input box

This is a RFC

The idea would be to put back the focus into the input box after a timeout when the focus has been lost.

i.e. If the player does an action on the page (click a word to see where it is, etc.) they don't have to remember to put back the focus in the box.

It is a bit tricky as it won't feel natual, it is not an expected browser behaviour

I entered a word in singular, it showed the word in the text, then I entered its plural version which was accounted as a new attempt (...)

I'm not sure if it is the same issue, but I entered a word in singular, it showed the word in the text, then I engered its plural version which was accounted as a new attempt. The only match of that plural was actually the singular previously matched

Example :
I enter "animal", it matches one word in text which is "animal"
I enter "animaux", it counts as a new attempt but also matches that same "animal" word in text

Originally posted by @MarionLeHerisson in #39 (comment)

Share feature could be improved

On desktop the text could be pre copied and a message would say so.
on mobile the share intent does not provide the text (more like a bug)

Pluralization bug

Apparently pluralization is built in, but it has problems. As it is, if you enter "this" as a guess, you'll get 0 hits regardless; if you enter the 'word' "thi" you'll get many hits on "this". Similarly, guessing "has" gets no hits, "ha" gets many hits on "has". If you enter "men" you'll get hits on "man" but no hits on "men". Entering "man" gives you hits on "man and on "men".

source https://www.reddit.com/r/Redactle/comments/wdjubk/comment/iiko2rw

Delete puzzle older than 3 months

The repository is growing quickly, and we don't need to keep the history of all puzzles.
In the publish script/command it would be nice to have a stage where the puzzle older than 3 months get deleted.

Spanish

I'd love to see someone implementing the spanish language :)

In French it is too confusing to have to enter singular words only

That was a feature (enter singular words and it reveals both singular and plural words)
but in practice it should work the other way arround otherwise it's confusing.

Today if you enter a plural word it is not revealed, on the player perspective it's a bug


To fix this, it will be needed to associate two hashes for a given word

Do not change focus back on mobile

On mobile it's more of a problem than a feature to put back the focus on the text field when it's lost.
Still we want to keep that feature on desktop.
So prevent playing with the focus on mobile

Open Graph and meta

The idea is to populate the needed meta tags/open graph and add a picture too so when the projet is shared on social network it looks better and is self descripting

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.