Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clear distinction between chatbox and secureLINK (i.e. platform and game) #3

Open
SilasBerger opened this issue Jan 11, 2024 · 0 comments
Labels
feature Add or improve business functionality v1 This issue should be fixed for v1

Comments

@SilasBerger
Copy link
Owner

SilasBerger commented Jan 11, 2024

Status quo

As of v0.1, the proof-of-concept for this project called chatbox is published as secureLINK.

This illustrates the following separate concerns:

  • chatbox is a platform for creating chat-based educational games for the web.
  • secureLINK is a standalone web application hosting a chatbox game of the same name.
  • secureLINK also happens to be one of the default UI themes provided by chatbox.

Moving forward

As part of this issue, chatbox is now reduced to being no more than a component library-style package, rather than a standalone web application.

What is currently called secureLINK now becomes (a) the default UI theme, and (b) an example for a hosted chatbox game, which is provided in this repository, and also used for development purposes.

What will it look like?

There should be these distinct components:

  • <Chatbox>: This configurable (web?) component is the primary interface of the chatbox platform to any web application hosting a chatbox game.
  • Theme: Defines what the abstract UI should look like. Use default or provide custom.
  • Core / game engine: Receives game file, runs the game, updates the UI, and displays the UI as defined by the theme.
  • type definitions for developing for custom game files

Additionally, the <Chatbox> component accepts a callback function (or RxJS Observable...?) through which it constantly updates its host with the current game state. The host can choose to store this state in localStorage, send it to a backend, etc.

In this issue

The main task in this issue is to encapsulate and package the chatbox platform in such a way that it can be embedded by any third-party host application. It should at least accept its game file from the host. Ideally, it also reports game state updates. Theme customization may be out of scope for this issue.

@SilasBerger SilasBerger added feature Add or improve business functionality v1 This issue should be fixed for v1 labels Jan 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Add or improve business functionality v1 This issue should be fixed for v1
Projects
None yet
Development

No branches or pull requests

1 participant