Nicolas Marcq 8 years ago
parent
commit
b35bd2f8ad
5 changed files with 187 additions and 17 deletions
  1. 76 0
      Docs/brain/brain.md
  2. 16 0
      Docs/contributing.md
  3. 29 0
      Docs/dev_env_install.md
  4. 21 0
      LICENSE.md
  5. 45 17
      README.md

+ 76 - 0
Docs/brain/brain.md

@@ -0,0 +1,76 @@
+# Brain
+
+The brain is where you create your personal assistant, your own configuration.
+
+Brain is the link between input and output actions.
+
+An input action can be:
+- **an order:** Something that has been spoke out loud by the user.
+- **an event:** A date
+
+An output action is
+- a neuron: A module that will perform some actions like simply talking, run a script, run a command or a complex Ansible playbook.
+
+Brain is expressed in YAML format (see YAML Syntax) and have a minimum of syntax, which intentionally tries to not be a programming language or script, 
+but rather a model of a configuration or a process.
+
+Let's look a basic brain:
+
+```
+---
+  - name: "Say hello"
+    neurons:      
+      - say:
+          message: "Hello, sir"
+    when:
+      - order: "say hello"
+```
+
+Let's break this down in sections so we can understand how these files are built and what each piece means.
+
+The file starts with:
+```
+---
+```
+This is a requirement for YAML to interpret the file as a proper document.
+
+Items that begin with a ```-``` are considered list items. Items that have the format of ```key: value``` operate as hashes or dictionaries.
+
+At the top level we have a "name"
+```
+- name: "Say hello"
+```
+This is the identifier of the task. This one must be unique as it will be used by the event handler based on crontab.
+
+Then we have the neurons declaration that contain a list (because it starts with a "-") which contains neurons
+```
+neurons:
+    - neuron_name
+    - neuron_2
+    - another_neuron
+```
+
+Neurons are modules that will be executed when the input action is triggered.
+Some neuron need parameters that can be passed as argument following the syntax bellow:
+```
+neurons:
+    - neuron_name:
+        parameter1: "value1"
+        parameter2: "value2"
+```
+
+In this example, the neuron say will make Jarvis speak out loud the phrase in parameter **message**.
+
+The last part, called **when** is a list of input action. This last works exactly the same way as neurons. You must place here at least one action.
+```
+when:
+  - order: "say hello"
+```
+
+In this example, the task is launched when the captured order contains "say hello". This means the order would start if you say
+- "say hello jarvis"
+- "jarvis, say hello"
+- "I want you to say hello"
+- "i say goodbye you say hello"
+- "whatever I say as long it contains say hello"
+

+ 16 - 0
Docs/contributing.md

@@ -0,0 +1,16 @@
+# Contributing
+
+## TODOs
+
+Here is the todo list we've made from our own ideas or from the community.
+
+- todo 1
+- todo 2
+
+## How to contribute
+
+1. Fork it!
+2. Create your feature branch: `git checkout -b my-new-feature`
+3. Commit your changes: `git commit -am 'Add some feature'`
+4. Push to the branch: `git push origin my-new-feature`
+5. Submit a pull request :D

+ 29 - 0
Docs/dev_env_install.md

@@ -0,0 +1,29 @@
+# Dev environment installation
+
+This documentation deals with the manual installation of components for developement of JARVIS.
+
+## System tools
+
+## Text to spreech engine
+Install pico2wave on Linux
+```
+apt-get install libtts-pico-utils
+```
+
+
+install audio utils
+```
+apt-get install flac
+```
+
+## Python lib
+You must have python pip to install library
+```
+
+```
+Then install libs
+```
+pip install SpeechRecognition
+pip install pyaudio
+pip install ansible
+```

+ 21 - 0
LICENSE.md

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 JARVIS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 45 - 17
README.md

@@ -1,17 +1,45 @@
-install pico2wave on Linux
-```
-apt-get install libtts-pico-utils
-```
-
-
-install audio utils
-```
-apt-get install flac
-```
-
-Python lib
-```
-pip install SpeechRecognition
-pip install pyaudio
-pip install ansible
-```
+# Jarvis
+
+JARVIS is voice controlled personal assistant. 
+
+TODO: insert video demo
+
+
+## Installation
+
+- Automated installation with Ansible 
+- Manual installation for developement
+
+## Usage
+
+- Configure default settings
+- Create the brain of your JARVIS
+- Run JARVIS
+
+## Neurons
+
+A neuron is a plugin that can be used from your **brain.yml**. 
+
+- See the list of available neuron.
+- See how to create your own neuron.
+
+
+
+
+## Contributing
+
+If you'd like to contribute to JARVIS, please read our Contributing Guide, which contains the philosophies we want to preserve, tests to run, and more. 
+We highly recommend reading through this guide before writing any code.
+
+
+
+## Credits
+
+TODO: Write credits
+
+## License
+
+Copyright (c) 2016. All rights reserved.
+
+JARVIS is covered by the MIT license, a permissive free software license that lets you do anything you want with the source code, 
+as long as you provide back attribution and ["don't hold you liable"](http://choosealicense.com/). For the full license text see the [LICENSE.md](LICENSE.md) file.