Skip to content
Kevin McWhirter edited this page Oct 27, 2023 · 2 revisions

Overview

This project is a component in the huntwords solution.

About Huntwords

Huntwords is a word search puzzle editor and player written in Typescript using SolidJS.

It relies on services (written in Python) exposed to edit puzzles, and generate the puzzle boards.

Design for docker-compose

For this version the focus is on composition using services using docker-compose; deploying into OMV6 (on RPi 4b cluster).

Services

Component API Purpose
➡️ redis provide storage infrastructure used by api
➡️ manager CLI for managing the cache - initialization, export, import, etc.
➡️ huntwords (nginx) Reverse proxy serving as an API Gateway (single stop shop for client). Also serves up static content for the huntwords component (SolidJS UI)
➡️ api API for managing puzzle definitions and retrieving puzzle boards from cache (Python)
puzzle-updated Updates puzzle - receives messages from manager
puzzles Returns list of defined puzzles
puzzleboard_consumed Generates and caches puzzle boards - receives messages from api as PuzzleBoards are delivered
puzzleboard_pop Returns next available puzzle board for puzzle - sends async puzzleboard_consumed message via api
             /--------> puzzle-updated (python)     -->\
             |                                         |
             |-------->  puzzles (python)           -->\
             |                                         |
             |--> puzzleboard-consumed (python)     -->\
             |               ^                         |
             |-------->  puzzleboard_pop (python)   -->\
             |               ^                         |
             \---------------|                         |
nginx  --->  / --------> api (python)               -->\ ---> (redis)
API Gateway  |               ^
(huntwords)  \ ---> manager (python cli)
Clone this wiki locally