Wordle clone but the words are replaced by STIB/MIVB stops

Overview

STIBle / MIVBle

STIBle / MIVBle is a WorLdle clone, except that you don't guess a country, but a stop in the STIB's (Brussels' public transport company) network.

Requirements

Installation

Clone the repository.

git clone https://www.github.com/piracope/STIBle.git

Install the necessary dependencies.

npm install

Usage

If you don't have a PORT defined in your environment, it will run on port 3000.

If you're running it locally, first run the server with this command :

npm start

You should see some weird stuff appear, then "Listening on port 3000" (or whatever port you're listening to). Btw that weird stuff is the secret stop generated which is useful for cheating debugging. Then, open your browser to http://localhost:3000. And then, do some heavy gaming 😎 .

Environment variables

In the root of the project, create a .env file. The only keys that will be taken into account (and their default values) are :

PORT=3000           // the port the server will be listening on
MAXIMUM_GUESSES=6   // the maximum number of guesses the player can make
MINUTE_MODE=        // if this variable is set to whatever, Minute Mode will be turned on

If any of those aren't set, they will take the default values aforementioned.

Minute Mode (debug)

Minute Mode generates a new secret Stop every 5 minutes. That's it. It's useful for debugging tho.

Features

  • Generates a new secret stop to guess every midnight (Europe/Brussels' midnight)

  • You can switch from French to Dutch and everything gets translated accordingly

  • uhhh like play it i guess, i mean it's yet another wordle clone so like play it and find out

  • There's a funny 404 page

Contributing

TL;DR I made this while not knowing anything about networking so please notify me of any security flaw. For actual features, let me know what you want but let me do it myself

I discovered how to make HTTP requests, how to make an API, how to make a (somewhat) MVC webapp in like, two sleepless nights. I have not yet seen this at school, and as such, have valued the "if it works it works" mindset rather than valuing security. I still did my best tho, but this thing surely has enough security flaws to pay for the living expenses of a cybersecurity expert for at least two days (the codebase is pretty small (1100+ LOC)).

I don't have to deal with storing user info or anything like that, so there's nothing much to compromise... I think. Anyways, if you notice a security risk, please, please tell me/PR me something about it.

As for new features, I accept suggestions, but this project is a huge learning opportunity for me, so I'd prefer of you just say "oh I want this" instead of giving me a PR with eerything already done.

Trivia

Why did you do this ?

This is the story of three people : @REXAG0NE (REXA) @Hatsenaa (Hatsena) and me.

So one day, the STIB Twitter account tweets a rebus, where you had to guess the name of the stop. Hatsena replied with something in the lines of "lmao imagine a STIB wordle", to which REXA replied "that'd be cool, but we'd need a dev". And after posting an adequately timed "hi", I slaved my nights away to make this !

Honestly it was pretty fun, I learned a lot of things doing this so worth it.

Why the 95 line as logo ?

Because it's the best one.

No it's not ! What about the 71 ?

I know who you are, where you are, and I am approaching rapidly. Start running.

Authors and acknowledgments

  • Development : piracope

  • Hosting : @REXAG0NE and Elitios

  • Original idea : @Hatsenaa

  • Original idea's main inspiration : WORLDLE by @teuteuf

  • Original idea's main inspiration's main inspiration : Wordle by Josh Wardle0

  • The "front-end sends a request to the API and never knows what the word is" design came to me while combing through cémantix's source code.

  • The data (stops, lines, ...) required to make the datasets that the game runs on came from the STIB's API.

License

Copyright (c) 2022 piracope, REXAGONE, Hatsena and contributors

Licensed under the AGPLv3 license.

Comments
  • More intuitive interface

    More intuitive interface

    Vers le bas du panneau d'aide, il manquerait un gros bouton "Commencer à jouer" bien en évidence. En effet, lorsqu'on arrive sur la page pour la première fois, c'est la page des règles qui s'affiche, mais on ne voit pas tout de suite la croix, ce qui n'est pas très intuitif par ailleurs, puisqu'on a pas explicitement demandé à ouvrir une popup...

    opened by MonsieurNaexec 6
  • Share button doesn't work on Opera GX Mobile

    Share button doesn't work on Opera GX Mobile

    The share button doesn't copy contents to the clipboard, despite navigator.clipboard.writeText existing. This makes the jump to the failsafe "show a modal with the text to copy manually" impossible.

    bug 
    opened by piracope 1
  • Add player statistics

    Add player statistics

    Player statistics

    The player should be able to see statistics from his previous playthroughs, a bit like Wordle, Worldle and other games of that kin do. It would show a graph showing on how much tries did the player take, it's average "best percentage", maybe even a streak and number of times played.

    How to do it

    It would be pretty easy to do : save an object in LocalStorage (named "history" or something) with three elements

    1. the number of tries
    2. the best percentage
    3. the puzzle number

    All of which are already used in shareGuess.

    When initializing, only remove guesses and lvlNumber (or whatever it was called). Make a button in the nav that on click, shows a modal with the stats, which should be gained simply by parsing the localstorage and iterating through it.

    enhancement 
    opened by piracope 0
  • Show the lines of a guess

    Show the lines of a guess

    Show the lines that pass on a guessed stop

    Somewhere next to the guess result, or below, the lines that pass on that stop would show up. This would not only make the game easier as you would get more insight on your guess, but also make the players learn more about the network (i guess, i don't know, probably though).

    How to do it

    Simply make a getLines on the guessed stop and add that to "/guess" response. Then build the lines, preferably smaller. Only problem is where it should be ? Should each guess take two rows ?

    enhancement 
    opened by piracope 0
  • Add an endless mode

    Add an endless mode

    Endless mode

    Keep on generating a new secret puzzle, even maybe making it a "let's see how much you can win in a row".

    How to do it

    It would require putting the whole "generating a secret" on the front-end, as it would be an all-in-all static page. Don't know how I'll go about that.

    enhancement 
    opened by piracope 0
  • Add a Hard Mode

    Add a Hard Mode

    Hard Mode

    Literally the same thing, but the lines don't show up. If set, it should only be applicable starting the next day.

    How to do it

    Create an object Settings in the localStorage. When clicking on a pre-made ON/OFF button, it should add an object to Settings, something like {hardMode: lvlNumber}. Or straight-up hardconding a value and making a

    settings = {
        lang: "fr"
        HardMode: undefined
    }
    

    When the hard mode is set, settings.hardMode would take the current lvlNumber as value. On page init, if hardMode exists and isn't equal to current level number, then we simply don't buildLines

    enhancement 
    opened by piracope 0
  • No autocomplete on Firefox for Android

    No autocomplete on Firefox for Android

    The datalist options don't show up when you try to make a guess on Firefox for Android. This was reported in Mozilla's bugzilla three years ago.

    Fixing it would require too much effort, or would be extremely simple but would require adding a dependency to a project I try to keep light. As such, I probably won't fix that.

    Oh and it probably doesn't work on Safari but meh, who cares about Apple users am i right

    wontfix 
    opened by piracope 0
Owner
Business Informatics student
null
Wordle but it's on your Terminal!

Wordinal Wordle but it's on your Terminal! What's Wordle? ?? Wordle is a classic word guessing game developed by Josh Wardle. Players have six attempt

ashish 5 Apr 12, 2022
Wordle but for music.

?? Soundle ?? A "Wordle for Music" ?? Links ?? ?? Repo · ?? Got Issue . Website ?? Features ?? Built with Axios Express React API Documentation ?? Fut

null 4 Oct 23, 2022
A clone of the popular Wordle game.

Wordle Clone How to play locally: yarn install

null 2 Jan 9, 2022
A clone of the popular game Wordle made using React, Typescript, and Tailwind

Wordle Clone Go play the real Wordle here Read the story behind it here Try a demo of this clone project here Inspiration: This game is an open source

Hannah Park 2.4k Jan 8, 2023
JavaScript library guessing game, a Wordle clone

Jazle JavaScript library guessing game, a Wordle clone. A fork of cwackerfuss/react-wordle. See the list of accepted libraries: wordlist.ts Build and

Oliver Radwell 17 May 26, 2022
How to build a multiplayer Wordle clone with Liveblocks, Vue, and Vite

Wordle Wars This repo shows how to build a multiplayer Wordle clone with Liveblocks, Vue, and Vite. Try it out It's forked from VVowrdle created by Ev

Chris 71 Dec 8, 2022
a wordle clone in the terminal?

Wordleee A clone of the popular word guessing game, that runs in the terminal with a fancy ?? (?) UI! Features ?? Based on Node.js (with the amazing I

Hugo Wiledal 11 Sep 4, 2022
Wordle-clone with a Dungeons & Dragons theme. Guess the monster-of-the-day by assigning numbers to characteristics.

DNDle A Wordle-clone with a Dungeons & Dragons (5e) theme. Guess the "monster of the day" by either entering values for the six characteristics (STR,

Dan Q 6 Apr 11, 2022
Zero clientside JavaScript Wordle clone, using Eleventy Edge

Eleventy Edge Wordle Yet another Wordle clone Play the hosted Wordle game! Recently, the Eleventy started unveiling its Eleventy Edge plugin, which al

Ben Myers 20 Oct 6, 2022
Wordle2Townscaper is meant to convert Wordle tweets into Townscaper houses using yellow and green building blocks.

Wordle2Townscaper Wordle2Townscaper is meant to convert Wordle tweets into Townscaper houses using yellow and green building blocks. You can download

Tarmo 66 Nov 2, 2022
Provides 5 keywords with which to narrow down your wordle game. I ruin nice things.

Widdle?? I hate fun so I wrote a script that ruins Wordle. This script can be used to find a Widdle, a set of five words that cover nearly all letters

Tess Myers 3 Mar 12, 2022
A simple wordle solver for Node.js

This is just a weekend project, so take it easy :-) simple-worlde-solver Wordle solver for Node.js. I am aware of other efforts that use greedy algori

Alessandro Toppi 3 Feb 20, 2022
WORDLEBOARD prototype: Show your Wordle game on a Vestaboard as you play.

WORDLEBOARD prototype Show your Wordle game on a Vestaboard as you play. Copyright (c) 2022, Scott Schiller. MIT license. Made with love and fun in mi

Scott Schiller 7 Dec 20, 2022
CLI to to solve your Wordle puzzle daily

?? CLI to to solve your Wordle puzzle daily. Learn to build Node.js CLI apps. wordle-solved-cli ?? CLI that solves Wordle puzzles for you ?? Automatic

Ahmad Awais ⚡️ 8 Feb 2, 2022
A Wordle-like game where you have to guess the unsigned 8-bit binary number

Bytle A Wordle-like game where you have to guess the unsigned 8-bit binary number! Game coded in 2h 14m 50.570s, but it's not like I'm counting how lo

James Livesey 16 Jun 30, 2022
Latin Wordle is a free and open-source project that aims to provide a fun and interactive way to learn Latin.

Latin Wordle Live Game Here Inspiration Latin Wordle is a free and open-source project that aims to provide a fun and interactive way to learn Latin.

null 15 Dec 16, 2022
The extension to help you when you badly don't want to mess up your wordle streak

Your last resort in woordle to maintain your woordle win streak

Sreecharan 2 Feb 3, 2022
🟩 in case you want to cheat on your wordle games

Wordle Solver How to use Enter each right guess in the first grid Enter all letters that you know aren't in a certain position in the second grid For

James Zhang 2 Feb 7, 2022
I found 'WORDLE' game is hackable . we get solution on localStorage. I just prevented this.

WordleGame() Demo: https://shobdokhela.vercel.app Go play the real Wordle here Read the story behind it here Main Author Hannah Park Inspiration: I fo

Samayun Chowdhury 3 Mar 6, 2022