Giter VIP home page Giter VIP logo

tactjam-client's Introduction

TactJam-client

TactJam setup

TactJam is a collaborative playground for composing spatial tactons. The project is split into the following repositories:

If you are looking for the GUI that provides information on the tactons loaded in the TactJam device, as well as document the use of a tacton, save and share it with others, you have come to the right place. Here you can find the GUI sources encapsulated in an Electron application.

How to build and develop the firmware

The TactJam GUI is based on Node.js, React, Webpack, and Electron. The whole structure relies on npm. You can simply build and run the project with the following commands:

> npm install
> npm start

To compile the Electron app into an executable, we use the electron-builder package. You first need to build your sources using the above command, and then run > npm run compile:windows or compile:mac or compile:linux based on your OS.

You might run into an error when starting the Electron app after building or compiling it that indicates a node module was compiled against another Node version. You would then need to install the Node module electron-rebuild and run it inside the main folder to rebuild all the dependencies.

How to contribute

Anyone with the passion for free software is welcome to contribute to this project by:

  • πŸ‘©β€πŸ’» developing software
  • πŸ‘Ύ filing any issues or suggesting new features
  • πŸ§‘β€πŸ­ sending pull requests for fixed bugs or new features

Before you start, please take a look at the project board and the issues. Maybe there is already a similar bug or feature request that is already under construction and may need your expertise and support.

Branching model

In 2010 Vincent Driessen wrote a nice blog post where he introduced a branching model called git-flow. Over the years it became very popular and was used in many projects. Meanwhile GitHub introduced a much simpler workflow called GitHub flow. Both approaches have their pros and cons. That’s why we use a combination – git-flow as the branching model and the pull request workflow suggested in GitHub flow.

How to commit

To make contribution easier for everyone we like use a common structure of git commit messages:

<type>[optional scope]: <description>
[optional body]
[optional footer(s)]

Please refer to www.conventionalcommits.org for more information.

Code style

This might not be the world’s largest code base. However, a consistent code style makes it easier to read and maintain. The people at Google are very experienced in this and have published their guidelines for different languages. For this project we want to orientate ourselves by this (e.g. C++ style guide for firmware code).

Copyright

TactJam-client is (C) 2020 Tactile Vision

It is licensed under the MIT license. For details, please refer to the LICENSE file.

tactjam-client's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tactjam-client's Issues

Note on camera control

To ensure correct use, a note on camera control could be displayed in the main view (e.g. bottom left).

The display is only necessary if camera control is activated.

The following text is conceivable.
rotate - Left mouse button
move - Right Mouse Button or Left Mouse Button + Ctrl
zoom - mouse wheel or two fingers on the dragpad

GUI-Device connected

The client has to display if there are at the moment a device connected or not. If not a reconnect has to be possible. If the app is started, the first page has to be that a device have to be connected with a refresh button.

Cancel Save Action

if I want to save a tacon and then cancel the operation, then the footer reports that the tacon was saved successfully.

Upload errors

Test 1

I created a tacton and attached some actuators in the GUI. I tried several combinations to fill the form.
The submission form seems to have some bugs or at least is not so user friendly in terms of feedback.

Only tacton name

string: "test_04_23_001"
result: πŸ›‘ error POST https://itactjam.informatik.htw-dresden.de/tactons/combined 400 from saveLayout.tsx

string: "test"
result: βœ…

string: "test 04 23 001"
result: βœ…

conclusion & suggestion:

  • validate string before sending to avoid exceptions
  • handle exceptions
  • provide hints which characters are not allowed

Test 2

I created no tacton and attached no actuators in the GUI.

result: βœ… which I would say is actually an error

conclusion & suggestion:

  • check if anything meaningful is set, e.g. tacton and/or actuator placements

Connection-Tags

The client has to receive the possible tags of the body and the pattern metadata tags. Also to create new tags and push them to the server.

GUI-Vibros Placement

The user need on the right side to choose where are the actuators on the body placed (3D Modell). It should display on the right side of the mainlayout

Switch for 3D Model

A button is used to switch between camera control and positioning of the actuators. To find out which state is active, the button must be pressed once (only one state can be displayed at a time). It would be better to have a controller that displays both states and thus gives the user more security.

Wording Tooltip

Currently used:
Import from the server
Upload to the server

To improve consistency I suggest:
Download from the server
Upload to the server

import error

When I try to import (download) a tacton I get the following error:
Uncaught TypeError: First argument to DataView constructor must be an ArrayBufferfrom vtp.cjs

I tested with all available tactons.

Connection-Importlayout

The Importlayout graphical is ready, but the connection to the server is missing to receive the metadata and display the collected data correct

Submit Bug

The upload of the tacton is not executed when the submit button is pressed.If it is executed (there is no feedback), the application remains in the submit state and does not return to the initial screen.

Open Console

The application starts with the console open. This is of no importance to the user and should be closed.

Register - missing feedback

Incorrect entries are returned by the server with the message 400 (console) and are not displayed in the diaglog for registration.

User needs reason for failure to register

Buttons to switch between own and all tactons

It would be really good, to have some sort of button switch or something like that, where you can choose between your own tactons and all tactons when you are downloading a tacton.

GUI-SaveLayout

There is a form to save the recieved pattern. The fields are complete but some nice styling is missing. Also some buttons, like to create new tags.

unified tag name format

Some of the tags start with capital letters. I would suggest to transform all tags to lower case - also when someone creates a new tag.

Connection panel

We are missing a connection panel indicating whether the device is currently connected.

Conn-ImportLayou

The Importlayout graphical is ready, but the connection to the server is missing to receive the metadata and display the collected data correct

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.