Skip to content

GuimilXD/wordl

Repository files navigation

WORDL

A open-source Wordle clone written in Elixir featuring Phoenix LiveView.

GitHub GitHub last commit GitHub Repo stars

Demo

You can play it here: https://wordl-liveview.herokuapp.com

Demo Image

Introduction

Wordl is a web-based word game where the player must guess a word using the given feedback from previous atempts.

It features:

  • Unlimited Play (Words are choosen randomly from a dictionary)
  • Quick Restart (Press Enter to restart)
  • Multiple Dictionaries Support

Development Setup

Prerequisites

This project requires Elixir! If you don't have it installed, refer to this guide.

Setting Up A Local Instance

  1. Clone this repo and change into its directory:
git clone https://github.com/GuimilXD/wordl.git
cd wordl
  1. Install dependencies with Mix:
mix deps.get
  1. Create and Migrate the Database:

WARNING: Be sure that you have a running PostgreSQL instance running! If you're having problems connecting to the database, refer to Phoenix's official guide!

mix ecto.create && mix.ecto.migrate
  1. (Optional) Run all tests and verify they pass:
mix test
  1. Start the server:
mix phx.server

Done! You can now navigate to http://localhost:4000 and start playing Wordl!

Known Issues

WARNING: This project is a LiveView Demo. Therefore, performance is not a concern (at least for now).

I'm well aware that sending keystrokes over the wire and handling them is the LiveView is not optimal performance-wise.

  • No Feedback is given when the user has run out of tries.
  • No Mobile Support

Contributing

Firstly, thank you for having interest in contributing! Please, check out Known Issues before contributing.

Got A Question or Problem?

Before opening a new issue, search your problem online and check if it has already been solved. If you still haven't figured out a solution yet, make sure to open an issue!

Found A Bug?

If you find any bugs in the code, please take the time to submit an issue to this repository. Even better, you can submit a pull request with a fix!

Submiting An Issue

Before you submit an issue, please search the issue tracker. An issue for your problem might already exist and the discussion might inform you of workarounds readily available.

Before fixing a bug, it's important for contributors to reproduce and confirm it. In order to reproduce bugs, it's required that you provide a minimal reproduction. Having a minimal reproducible scenario gives us a wealth of important information without going back and forth to you with additional questions.

Submiting A Pull Request (PR)

Before you submit your Pull Request (PR) consider the following guidelines:

  1. Search GitHub for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts.

  2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work.

  3. Fork the guimilxd/wordl repo.

  4. In your forked repository, make your changes in a new git branch:

git checkout -b my-fix-branch main
  1. Create your patch, including appropriate test cases.

  2. Run the full test suite and ensure that all tests pass.

  3. Commit your changes using a descriptive commit message that follows Conventional Commits conventions.

git commit --all

Note: the optional commit -a command line option will automatically "add" and "rm" edited files.

  1. Push your branch to GitHub:
git push origin my-fix-branch
  1. In GitHub, send a pull request to wordl:main.

Credits

Many thanks to Josh Wardle for coming up with the original idea. You check out his implementation here!

License

Wordl is licensed under the terms of the MIT license and is available for free.