To work as intended, the application needs to use a set of dependencies. As a package manager, npm or yarn might be used to install these packages / modules:
The machine that will be used to develop the application needs to have:
npm
Node.js
MongoDB
sox
Python
First:
initialize yarn or npm
Dev dependencies:
Code Quality (these are needed for front- and backend):
The repository should have a project introduction in the README.md that contains:
Brief introduction of the project
When the project is ready for the first release, the README.md needs to be completed with all needed information. This will be handled in another issue.
Users need to be able to edit text chunks in a note with their device keyboard as the speech-to-text feature "only" has a reported 95% accuracy. Users should also be able to delete a text chunk.
Desired functionality
When a text chunk is focused, a cursor appears to edit the text chunk
When a text chunk is edited, every change in a text chunk is saved directly
Users of the app should be able to create text notes when they speak into their browser microphone. To create a note, they should be able to activate / deactivate the microphone of their device to control, when the app is listening for voice input that should be created as a note.
Desired functionality
When the microphone button is pushed, it is toggled active / inactive
When the recorder is active, it should listen for input and display the transcribed text chunks as deepspeech returns them.
Text chunks should be displayed as they come in from the speech recognition engine
When the recorder is active, it should display an audio wave form to show noise activity detection
Users need to be able to see previously created notes in an organized list. By looking at the note, they should be able to see a teaser preview of the content of the note. A click on the note should direct the user to the specific note.
Desired functionality
In case of no previously created notes, display a message that informs, that there are no notes and the user should go ahead and create the first note.
Display a list view of notes that contains cards showing a note title (if available) and a teaser text of the note.
A click on a note in the list will open the full note for further editing.
Before the design can continue (#2 ), there is a need to define all pages of the application, so we know what pages need to be designed. In addition, for each page, there is a need to list all functionalities (i.e. user stories) to also define different parts on the pages.
Define page structure and navigation
Define functionality for each page (What tasks can be achieved by the user? )