A TUI implementation of the popular word quiz wordle!

gordle

Codacy Badge

A TUI implementation of the popular word quiz Wordle!

Building

  • Build the cli command:
$ go build ./cmd/cli
<Empty output on build success>
  • Build the server command:
$ go build ./cmd/server
<Empty output on build success>

Running Tests

  • Run the testsuite with coverage enabled:
$ go test -coverpkg=all ./... -coverprofile=coverage.out
?       github.com/TheDonDope/gordle/cmd/cli    [no test files]
?       github.com/TheDonDope/gordle/cmd/server [no test files]
?       github.com/TheDonDope/gordle/pkg/config [no test files]
?       github.com/TheDonDope/gordle/pkg/http   [no test files]
  • Open the results in the browser:
$ go tool cover -html=coverage.out
<Opens Browser>

Running with Docker

  • Build the server:
$ docker-compose -p server build
Building server
Step 1/12 : FROM golang:1.17-buster AS builder
 ---> 4a581cd6feb1
Step 2/12 : LABEL maintainer="[email protected]"
 ---> Using cache
 ---> de7bdc3fcadd
Step 3/12 : WORKDIR /src
 ---> Using cache
 ---> 4ce0250120de
Step 4/12 : COPY go.mod go.sum ./
 ---> Using cache
 ---> b0ee6161c395
Step 5/12 : RUN go mod download -x
 ---> Using cache
 ---> d94c6d082b1c
Step 6/12 : COPY . ./
 ---> Using cache
 ---> 3f97a1d54c47
Step 7/12 : RUN go build -v -o /bin/server cmd/server/*.go
 ---> Using cache
 ---> 6d76a0d114ec

Step 8/12 : FROM debian:buster-slim
 ---> f49666103347
Step 9/12 : RUN set -x && apt-get update &&   DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates &&   rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> f79505d005ac
Step 10/12 : WORKDIR /app
 ---> Using cache
 ---> a838cca6711f
Step 11/12 : COPY --from=builder /bin/server ./
 ---> Using cache
 ---> be056c36b528
Step 12/12 : CMD ["./server"]
 ---> Using cache
 ---> d64a6d294da8

Successfully built d64a6d294da8
Successfully tagged server_server:latest
  • Run the server synchronous:
$ docker-compose -p server up
Creating gordle-server ... done
Attaching to gordle-server
gordle-server | [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
gordle-server |
gordle-server | [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
gordle-server |  - using env:     export GIN_MODE=release
gordle-server |  - using code:    gin.SetMode(gin.ReleaseMode)
gordle-server |
gordle-server | [GIN-debug] GET    /healthy                  --> github.com/TheDonDope/gordle/pkg/http.Healthy (4 handlers)
gordle-server | [GIN-debug] Listening and serving HTTP on :4242
  • Run the server as a daemonized service:
$ docker-compose -p server up -d
Starting gordle-server ... done
Owner
Christian Dobert
I press buttons on a keyboard and then pixels jump around.
Christian Dobert
Similar Resources

a TUI for signal messenger, written in Go

a TUI for signal messenger, written in Go

siggo A terminal ui for signal-cli, written in Go. Features vim-style ux useful for quick messages or use $EDITOR to compose fancy ones emoji support,

Jan 2, 2023

A powerful little TUI framework 🏗

A powerful little TUI framework 🏗

Bubble Tea The fun, functional and stateful way to build terminal apps. A Go framework based on The Elm Architecture. Bubble Tea is well-suited for si

Dec 27, 2022

Canard. A command line TUI client for the journalist RSS aggregator.

Canard. A command line TUI client for the journalist RSS aggregator.

Canard Canard. A command line TUI client for the Journalist RSS aggregator. Installation Download a binary from the releases page. Or build it yoursel

Jan 6, 2023

🧭 TUI for command navigation

🧭 TUI for command navigation

devgo a command-line launcher Install latest version curl -o- https://raw.githubusercontent.com/TheWinds/devgo/main/install.sh | bash special version

Apr 19, 2022

A terminal UI (TUI) for HashiCorp Nomad

A terminal UI (TUI) for HashiCorp Nomad

Damon - A terminal Dashboard for HashiCorp Nomad Damon is a terminal user interface (TUI) for Nomad. It provides functionality to observe and interact

Jan 6, 2023

A TUI multitool for day-to-day operations for software applications.

Bench (WIP) A TUI multitool for day-to-day operations for software applications. Lets you do common operations needed during IT work that are common e

Dec 5, 2021

🦜 Navigate github repos in a tui

goh Navigate github repos in a tui Why I am constantly refering to my github repos and repos from others for code snippets that are relevant to what I

Dec 10, 2021

A tui for playing media from a caddy fileserver

kwatch a little tui interface to play media from a caddy fileserver. options: -a: server address -u: server http username -p: server http password -o:

Aug 9, 2022

Light weight Terminal User Interface (TUI) to pick material colors written by Go.

Light weight Terminal User Interface (TUI) to pick material colors written by Go.

mcpick Light weight Terminal User Interface (TUI) to pick material colors. You do NOT need to take your hands off the keyboard to pick colors. Getting

Dec 27, 2022
Comments
  • Program does not handle lowercase characters properly & Missing new line b4 exit

    Program does not handle lowercase characters properly & Missing new line b4 exit

    Dear developer,

    when I play your game, I never win... That makes me sad... :sob: :sob:

    Here is my last result:

    lower ⬛⬛⬛⬛⬛ (1/6)
    cases ⬛⬛⬛⬛⬛ (2/6)
    arent ⬛⬛⬛⬛⬛ (3/6)
    worki ⬛⬛⬛⬛⬛ (4/6)
    pleez ⬛⬛⬛⬛⬛ (5/6)
    fixit ⬛⬛⬛⬛⬛ (6/6)
    
    The solution was: NEQUE /tmp/gordle/cmd/cli
    $ Give me my newline back!
    

    I guess there is a bug which is intendet to make me look bad. :rage: The pesky :bug: can be observed in the games output! :mag:

    Good game 10/10 :rocket: :fire:

    plz don't overuse :smile:'s and implement strings.ToLower(str) ty! :1st_place_medal:

  • build(deps): bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0

    build(deps): bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0

    Bumps github.com/gin-gonic/gin from 1.6.3 to 1.7.0.

    Release notes

    Sourced from github.com/gin-gonic/gin's releases.

    Release v1.7.0

    BUGFIXES

    • fix compile error from #2572 (#2600)
    • fix: print headers without Authorization header on broken pipe (#2528)
    • fix(tree): reassign fullpath when register new node (#2366)

    ENHANCEMENTS

    • Support params and exact routes without creating conflicts (#2663)
    • chore: improve render string performance (#2365)
    • Sync route tree to httprouter latest code (#2368)
    • chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa (#2375)
    • chore(performance): improve countParams (#2378)
    • Remove some functions that have the same effect as the bytes package (#2387)
    • update:SetMode function (#2321)
    • remove a unused type SecureJSONPrefix (#2391)
    • Add a redirect sample for POST method (#2389)
    • Add CustomRecovery builtin middleware (#2322)
    • binding: avoid 2038 problem on 32-bit architectures (#2450)
    • Prevent panic in Context.GetQuery() when there is no Request (#2412)
    • Add GetUint and GetUint64 method on gin.context (#2487)
    • update content-disposition header to MIME-style (#2512)
    • reduce allocs and improve the render WriteString (#2508)
    • implement ".Unwrap() error" on Error type (#2525) (#2526)
    • Allow bind with a map[string]string (#2484)
    • chore: update tree (#2371)
    • Support binding for slice/array obj [Rewrite] (#2302)
    • basic auth: fix timing oracle (#2609)
    • Add mixed param and non-param paths (port of httprouter#329) (#2663)
    • feat(engine): add trustedproxies and remoteIP (#2632)
    Changelog

    Sourced from github.com/gin-gonic/gin's changelog.

    Gin v1.7.0

    BUGFIXES

    • fix compile error from #2572 (#2600)
    • fix: print headers without Authorization header on broken pipe (#2528)
    • fix(tree): reassign fullpath when register new node (#2366)

    ENHANCEMENTS

    • Support params and exact routes without creating conflicts (#2663)
    • chore: improve render string performance (#2365)
    • Sync route tree to httprouter latest code (#2368)
    • chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa (#2375)
    • chore(performance): improve countParams (#2378)
    • Remove some functions that have the same effect as the bytes package (#2387)
    • update:SetMode function (#2321)
    • remove a unused type SecureJSONPrefix (#2391)
    • Add a redirect sample for POST method (#2389)
    • Add CustomRecovery builtin middleware (#2322)
    • binding: avoid 2038 problem on 32-bit architectures (#2450)
    • Prevent panic in Context.GetQuery() when there is no Request (#2412)
    • Add GetUint and GetUint64 method on gin.context (#2487)
    • update content-disposition header to MIME-style (#2512)
    • reduce allocs and improve the render WriteString (#2508)
    • implement ".Unwrap() error" on Error type (#2525) (#2526)
    • Allow bind with a map[string]string (#2484)
    • chore: update tree (#2371)
    • Support binding for slice/array obj [Rewrite] (#2302)
    • basic auth: fix timing oracle (#2609)
    • Add mixed param and non-param paths (port of httprouter#329) (#2663)
    • feat(engine): add trustedproxies and remoteIP (#2632)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • Panic when file / folder is missing

    Panic when file / folder is missing

    After running the executable it seems pretty worried about smth... Maybe a missing err != nil check? We will never find out! PLX HEEELP

    panic: open /usr/share/dict/words: no such file or directory
    
    goroutine 1 [running]:
    github.com/TheDonDope/gordle/pkg/validation.readWords()
            /tmp/gordle/pkg/validation/guess.go:101 +0x9c
    github.com/TheDonDope/gordle/pkg/validation.NewWotd()
            /tmp/gordle/pkg/validation/guess.go:75 +0x2b
    main.main()
            /tmp/gordle/cmd/cli/main.go:19 +0x2e
     /tmp/gordle/cmd/cli
    
Related tags
Wordle-cli - play wordle in your command line
Wordle-cli - play wordle in your command line

Wordle CLI Play Wordle in your command line! Screenshots Download You can downlo

Oct 30, 2022
Terminal Quiz Application Written in Go
Terminal Quiz Application Written in Go

Term Quiz A Quiz application made for your terminal Installation go get github.com/crazcalm/term-quiz Question Types Include A B C D True and False F

Sep 27, 2022
Commandlinequiz - Command Line Quiz With Golang

Command Line Quiz Features Command Line Integrated. Easy to use Installation Lin

Feb 13, 2022
Play WORDLE on the command line.

wordler Play WORDLE on the command line. Installation If you don't have go installed, you can install it with: brew install go Check your version: go

Jun 3, 2022
Termle - Wordle in the Terminal. termle
Termle - Wordle in the Terminal. termle

termle Wordle in the Terminal. termle. go install

Jun 16, 2022
Terminal based wordle clone. Uses the amazing charm.sh libraries to render and expose the game over SSH

Terminal based wordle clone. Uses the amazing charm.sh libraries to render and expose the game over SSH

Nov 17, 2022
word2text - a tool is to convert word documents (DocX) to text on the CLI with zero dependencies for free
word2text - a tool is to convert word documents (DocX) to text on the CLI with zero dependencies for free

This tool is to convert word documents (DocX) to text on the CLI with zero dependencies for free. This tool has been tested on: - Linux 32bit and 64 bit - Windows 32 bit and 64 bit - OpenBSD 64 bit

Apr 19, 2021
💼 CLI / TUI for Pocket
💼 CLI / TUI for Pocket

gocket A simple CLI (or TUI) for Pocket. Read your Pocket goodies from your comfy shell. Archive or delete multiple entries easily. Use a TUI or pipe

Aug 9, 2022
TUI process monitor written in Go
TUI process monitor written in Go

pst This is TUI process monitor written in Go. Features Monitor process's list, info, tree, open files, Kill process Support OS Mac Linux Requirements

Nov 25, 2022
A CLI / TUI for Microsoft Teams
A CLI / TUI for Microsoft Teams

teams-cli A Command Line Interface (or TUI) to interact with Microsoft Teams Status The CLI only let you log-in and fetches your user and conversation

Dec 22, 2022