Skip to content
This repository has been archived by the owner on Mar 5, 2020. It is now read-only.

Commit

Permalink
Merge pull request #282 from AmyAssist/dev
Browse files Browse the repository at this point in the history
Sprint 3
  • Loading branch information
Legion2 authored Jul 25, 2018
2 parents 19438f4 + fee571f commit 75a1e2e
Show file tree
Hide file tree
Showing 301 changed files with 12,718 additions and 3,406 deletions.
22 changes: 13 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
language: java
jdk:
- oraclejdk8
- openjdk8
# - openjdk8
jobs:
include:
- stage: test and code quality
script:
- mvn clean test jacoco:report sonar:sonar
- bash <(curl -s https://codecov.io/bash)
addons:
sonarcloud:
organization: "amyassist"
token: $SONAR_TOKEN
- stage: deploy
script: ./scripts/deployGH-Pages.sh
deploy:
Expand All @@ -13,14 +21,10 @@ jobs:
local_dir: gh-pages/
on:
branch: dev
- script:
- mvn clean test jacoco:report
- bash <(curl -s https://codecov.io/bash)
- script: mvn clean test jacoco:report sonar:sonar
addons:
sonarcloud:
organization: "amyassist"
token: $SONAR_TOKEN
stages:
- test and code quality
- name: deploy
if: branch = dev
notifications:
slack:
secure: hyZgENH3vLXBUvpyztX3e6Fo8VEaBJYjHCbX1czIzBmX8txIAE41nzwvL5I+D8rUzI7Fy6L0eF4CYltx0HYm27XHhlpOExpo4kEyid7ndO2iwrXeMShbzF1G1ayW0XSzJ51Hb23hPjulTJUZxCDJAiX5hZ+8PTIb0FTm2omC77HfnaV80KX0jcc2s7ULOMpLvvPLJV3bT982RYSPUWwuCCZtjhgjvdNAAhU0tY4WCAjlRTbIjxdTthg+5SeKwCGCw1bWtBG1Z53FDaEIKGOe1NuD5Qq5cGa4sjsZwPEg1o/ENadahhtisH5c/OzqEIIKK0Yg2K1SZgI8YCyl774YBE9XOwHCvgBSJGOHzY5MAJIM68hyEn+bgWQkzxmfuauZNQnIjUi9Z/VKb0sf7YUzWHM4P93MhoDE4nxddIiLND5z1n6E0et3aXIGkw51hR8aIi7I3SOHgZPFKCoOsxci/S730Nt3MGgiTuPjJZKGvzAe/LEj/nPpyQj7/ZGxT1gtYlQNQR0bK5IffRHy9Gj1WyPU27g6wFwxu+DSUV6cJ/ZtDFnVGJsleXAZnX9Sp4Ski1/QZ5o/C84hnq/wINcrOydZVzcXkFxV/VIBjS7mp0S+Ln6olPBmgzxs0K3g7YVgZfSosIhPZjaYoeERK91R8plhfZsGb/DQ1qfH2pnWR8Y=
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at amy.speechassist@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
92 changes: 92 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

## Pull Request Process

1. Ensure any install or build dependencies are removed before the end of the layer when doing a
build.
2. Update the README.md with details of changes to the interface, this includes new environment
variables, exposed ports, useful file locations and container parameters.
3. Increase the version numbers in any examples files and the README.md to the new version that this
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
do not have permission to do that, you may request the second reviewer to merge it for you.

## Code of Conduct

### Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

### Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

### Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
13 changes: 13 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM openjdk:8-jre

COPY core/target/amy-core-*-Snapshot.jar /app/amy.jar
COPY plugins/*/target/*with-dependencies.jar /app/plugins/
COPY config /app/config
COPY .docker/config /app/config
COPY resources /app/resources

WORKDIR /app

EXPOSE 8080

CMD ["java", "-jar", "amy.jar", "-c", "/config"]
90 changes: 85 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,99 @@
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=de.unistuttgart.iaas.amyassist%3Aamy&metric=bugs)](https://sonarcloud.io/component_measures?id=de.unistuttgart.iaas.amyassist%3Aamy&metric=Reliability)
[![Reliability](https://sonarcloud.io/api/project_badges/measure?project=de.unistuttgart.iaas.amyassist%3Aamy&metric=reliability_rating)](https://sonarcloud.io/component_measures?id=de.unistuttgart.iaas.amyassist%3Aamy&metric=Reliability)

Personal Assistance System
### Personal Assistance System

This is a research project from students of the University of Stuttgart. No functionality is tested. There may be harmful errors.

In parallel, we are working on a web interface for Amy, which you can find [here](https://github.com/AmyAssist/Amy-Web)

This is a research project from students. No functionality is tested. There may be harmful errors.
For license information see [License-Notice](notice.md).

Maven: de.unistuttgart.iaas.amyassist.amy



## Getting Started
To get started with Amy, either clone or download the project from the [main page](https://github.com/AmyAssist/Amy).


### Prerequisites

We handle our dependencies within the project with [Apache Maven](https://maven.apache.org/) so to build the project you have to have Maven installed. You can find the archive to download on [this website](https://maven.apache.org/download.cgi).


### Installing and running

To install the project, you need to run maven install on the root directory of the project, so the path you are in should look something like this: `C:/...folder(s).../Amy/`
Execute `mvn install`, this command will install and test the whole project.

#### Important: It is imperative that you do this at least once (when downloading a fresh copy of the project) or when you make any change to the code, otherwise your changes will not be applied

After installing, you are able to run the project. Use your favourite Java IDE and run the Main method in the [Main class](core/src/main/java/de/unistuttgart/iaas/amyassist/amy/core/Main.java) that lies in the core project.

As soon as the confirmation `[INFORMATION] :: Speech Recognition activated` pops up in your console you are good to go.

#### Waking her up and setting her to sleep
Before giving Amy any commands, she first has to be woken up.
This is accomplished by saying `Amy wake up` - if the command was spoken and heard properly you will receive an acoustic confirmation that she is awake.
You may now give Amy speech commands.


If you wish that Amy stops listening, simply say `Amy sleep` and she will not react to any commands that are given to her - until you wake her up again


#### Using the console to give Amy commands
There are commands which can be typed into the console that do not trigger any plugin actions. An example would be `?list`.
This command lists all of the possible commands that you can give Amy.

If you wish to trigger a plugin action with a command, be careful that you put the word `say` in front of your command, otherwise the errors will haunt you even in your dreams.
A valid command looks like this: `say how many emails do i have`


## Running the tests

If you wish to run the automated tests, run `mvn test` in your console while being in the root folder of the project (the same as the one you installed in)

## Development

Documentation is in the [Wiki](https://github.com/AmyAssist/Amy/wiki) of GitHub.

Direct links:
- [Home](https://github.com/AmyAssist/Amy/wiki)
- [Annotations](https://github.com/AmyAssist/Amy/wiki/Annotations)
- [Architecture](https://github.com/AmyAssist/Amy/wiki/Architecture)
- [Dependency Injection](https://github.com/AmyAssist/Amy/wiki/Dependency-Injection-(DI))(incomplete)
- [How to create a plugin](https://github.com/AmyAssist/Amy/wiki/How-to-create-a-plugin)
- [How To Test](https://github.com/AmyAssist/Amy/wiki/How-to-Test)
- [Issues](https://github.com/AmyAssist/Amy/wiki/Issues)
- [Logger](https://github.com/AmyAssist/Amy/wiki/Logger)
- [How to create a plugin](https://github.com/AmyAssist/Amy/wiki/How-to-create-a-plugin)
- [Dependency Injection](https://github.com/AmyAssist/Amy/wiki/Dependency-Injection-(DI))(uncomplete)


## Deployment

TODO

## Built With

* [Maven](https://maven.apache.org/) - Dependency Management

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

TODO

## Authors

See the list of [contributors](https://github.com/AmyAssist/Amy/graphs/contributors) who participated in this project.

## License

This project is licensed under the Apache 2.0 License - see the [LICENSE Document](LICENSE) for details

## Acknowledgments

* [CMU Sphinx Speech Recognition](https://cmusphinx.github.io/)
* [Mary TextToSpeech](http://mary.dfki.de/)
* for additional acknowledgments see the [Notice file](notice.md)
1 change: 1 addition & 0 deletions api/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
Expand Down
1 change: 1 addition & 0 deletions api/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
Expand Down
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>de.unistuttgart.iaas.amyassist</groupId>
<artifactId>amy</artifactId>
<version>0.3.0</version>
<version>0.4.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

package de.unistuttgart.iaas.amyassist.amy.core;

import java.util.List;

/**
* The interface of our command line argument handler
*
Expand All @@ -33,16 +35,25 @@ public interface CommandLineArgumentHandler {
/**
* @return whether the program should continue with normal execution considering these command line flags
* @throws IllegalStateException
* When the CommandLineArgumentHandler is not initialized. (When {@link #init(String[]) init} was not
* called before.)
* When the CommandLineArgumentHandler is not initialized.
*/
boolean shouldProgramContinue();

/**
* Get the alternate config path set by the command line flags.
* Get the additional config paths set by the command line flags.
*
* @return The alternate config path or null if none is set.
* @return a list of config paths or null if none is set.
* @throws IllegalStateException
* When the CommandLineArgumentHandler is not initialized.
*/
String getConfigPath();
List<String> getConfigPaths();

/**
* Get a list of plugin paths
*
* @return a list of paths or null if none was sepcified.
* @throws IllegalStateException
* When the CommandLineArgumentHandler is not initialized.
*/
List<String> getPluginPaths();
}
Loading

0 comments on commit 75a1e2e

Please sign in to comment.