Giter Club home page Giter Club logo

adaptive-palette's Introduction

Adaptive Palette

This project builds a palette that empowers AAC(Augmentative and Alternative Communication) users with the ability to personalize it according to their specific requirements, thereby enhancing their communication capabilities with others.

The front end of the project is built with Preact.

Install

To work on the project, you need to install NodeJS and NPM for your operating system.

Then, clone the project from GitHub. Create a fork with your GitHub account, then enter the following in your command line (make sure to replace your-username with your username):

git clone https://github.com/your-username/adaptive-palette

From the root of the cloned project, enter the following in your command line to install dependencies:

npm ci

Development

Start a Development Server

To start a local web server for development that every change to the source code will be watched and redeployed, run:

npm run dev

The website will be available at http://localhost:3000.

Lint

To lint the source code, run:

npm run lint

Run Tests

To run tests, run:

npm test

Production Build

To generate a production build, run:

npm run build

Upon completion, you'll have a new dist/ folder which can be deployed directly to a server.

To preview the production build, run:

npm run preview

Demonstrations

The sub-folder demos contains code for a number of demonstrations. These are short examples. The apps folder contains more fully built-out application examples. See the respective READMEs for instructions on how to run the software.

  • Ollama Chat Service Demo: a simple web-app that runs on localhost for sending queries to an Ollama chatbot service also running on localhost.
  • Ollama Chat Web-App: a chat application running on localhost that provides access to multiple LLMs using the Ollams localhost web service.

adaptive-palette's People

Contributors

klown avatar cindyli avatar

Stargazers

Shawn Shawn Kim avatar

Watchers

Justin Obara avatar Michelle avatar  avatar  avatar James Cloos avatar  avatar

Forkers

cindyli agamba klown

adaptive-palette's Issues

Develop Preact components for the palette cells/keys and render them in a grid based on a JSON file

Palette Cells that Act as Keys

The cells of the palette that are interactive and behave like keys on the palette are defined in a JSON structure given in the baby-bliss-bot repository. (Note: the links currently reference the branch where the development of this JSON structure is taking place).

The information in the JSON structure is used to:

  1. Create a component that is used to render individual cells on-screen, and
  2. Lay out the cells according to the row/column arrangement defined in the JSON.

Separate the output area from any palette in the display.

Is your feature request related to a problem?

The output area, specifically, the ContentsBmwEncoding component, is a region where the symbols that the user has chosen appear as they are selected. Currently, this area is duplicated at the top of each description file containing a palette of symbols. As such, the output area is an inherent part of each palette, and they are rendered together as a single palette.

Describe the solution you'd like

In terms of the palette description files, the output area should be in its own separate file. With respect to the display, it should be a separate region on the page, independent of any other component. Finally, as users choose symbols, its contents should be updated as appropriate.

Implement layers and navigation among different palettes.

Is your feature request related to a problem?

Users will have a variety of palettes that reflect different groupings of symbols at different times. There needs to be a way to move from one palette to another, and back.

Describe the solution you'd like

Certain cells in a given palette will provide navigation to another palette layer. That is, choosing that cell will cause another palette, represented by that cell, to replace the current palette. The new palette in turn may have another such "go-to-palette" cell to use to navigate to another palette layer.

In addition, there needs to be a way to go back from the newest layer to the palette that led to it. Note that the path from one layer to another can be short, amounting to a simple there-and-back, or longer with many intervening palette layers. A "go-back" cell is a minimal feature that allows users to reverse the path one layer at a time.

Modify build process to copy static `.json` palette description files to the`dist` folder

Describe the bug

The preact/vite build process does not copy static data held in .json files to the dist/assets folder. If it did, the code could use fetch() to acquire the information in those files instead of using the dynamic import() function. Using fetch() would a be common way of retrieving resources whether they are local or from a remote server. In addition, thevite build process uses rollup to package the files for distribution. Rollup has a number of limitations regarding the argument of a dynamic import(). It is not transparent as to why the argument is assembled that way without knowing about these restrictions; hence, using dynamic import() is error prone.

To reproduce

N/A

Expected behavior

With the proper build setup, the build action would copy the palette .json files to a known place in the dist folder such that fetch() could be used to input their contents. Or, at least make a dynamic import() of them obvious.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.