Skip to content

Commit

Permalink
Improve README.md (#33)
Browse files Browse the repository at this point in the history
* Improve README.md

Signed-off-by: Arthur Temporim <arthurrtl@gmail.com>

* Correct problems on README content

Signed-off-by: ArthurTemporim <arthurrtl@gmail.com>

Co-authored-by: Raphael Pinto <raphaelcpinto@gmail.com>
  • Loading branch information
arthurTemporim and ralphg6 committed Jan 29, 2020
1 parent bf39ec6 commit 138d743
Showing 1 changed file with 73 additions and 83 deletions.
156 changes: 73 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,111 +1,77 @@
# David
An engine for chatbots.

[![Documentation Status](https://readthedocs.org/projects/david-ausubel/badge/?version=latest)](https://david-ausubel.readthedocs.io/en/latest/?badge=latest)


**David** is a powerfull engine dialogue engine with two main parts: `NLU` and `dialogue`. The main objetive of this project is too use existing chatbots projects and uses it to develop your solution.

The name was inspired by [David Ausubel](https://novaescola.org.br/conteudo/262/david-ausubel-e-a-aprendizagem-significativa) because the main objective of this project was to build a collaborative platform to maintain Bots for learning.

Inspired by Watson Assistant and Rasa.

## How to RUN
## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

* Docker:

```bash
docker-compose up --build
```

or in editable mode:
* Editable mode:

```bash
pip3 install -r requirements-dev.txt
pip3 install -e .
pip install -e .
cd examples/my-first-bot
david
```

## How can you contribute?
* After that you should see this output:

```bash
david
* Serving Flask app "david.__main__" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
```

- [ ] Improve code documentation
- [ ] Improve README.md
- [ ] Improve condition evaluation engine
- [ ] Context Variables
- [ ] Entities
- [ ] Other expressions in SPEL
- [ ] Modularize the code
- [ ] Implement support for multiples NLU engines
- [ ] Implement support for RASA NLU Engine
## Prerequisites

## Name of Project
* To build, first install all necessary dependencies:

The name was inspired by [David Ausubel](https://novaescola.org.br/conteudo/262/david-ausubel-e-a-aprendizagem-significativa) because the main objective of this project was to build a collaborative platform to maintain Bots for learning.
All the dependencies can be find in `requirements.txt` and development in `requirements-dev.txt`.

## Development Internals
### Running and changing the documentation
To build<!-- & edit the docs-->, first install all necessary dependencies:
## Installing Development Environment

```
pip3 install -r requirements-dev.txt
```
<!--
After the installation has finished, you can run and view the documentation
locally using:
```
make livedocs
```
* A step by step installation guide:

Visit the local version of the docs at http://localhost:8000 in your browser.
You can now change the docs locally and the web page will automatically reload
and apply your changes.
1. Run these commands to install `david` in your python virtual env:

### Running the Tests
In order to run the tests, make sure that you have the development requirements installed:
```bash
export PIP_USE_PEP517=false
pip3 install -r requirements-dev.txt
pip3 install -e .
make prepare-tests-ubuntu # Only on Ubuntu and Debian based systems
make prepare-tests-macos # Only on macOS
pip install -r requirements-dev.txt
pip install -e .
```

Then, run the tests:
```bash
make test
```
1. Go to examples folder and start the project:

They can also be run at multiple jobs to save some time:
```bash
JOBS=[n] make test
cd examples/my-first-bot
david
```

Where `[n]` is the number of jobs desired. If omitted, `[n]` will be automatically chosen by pytest.
### Steps to release a new version
Releasing a new version is quite simple, as the packages are build and distributed by travis.
*Terminology*:
* patch release (third version part increases): 1.1.2 -> 1.1.3
* minor release (second version part increases): 1.1.3 -> 1.2.0
* major release (first version part increases): 1.2.0 -> 2.0.0
*Release steps*:
1. Make sure all dependencies are up to date (**especially Rasa SDK**)
2. Switch to the branch you want to cut the release from (`master` in case of a major / minor, the current feature branch for patch releases)
3. Run `make release`
4. Create a PR against master or the release branch (e.g. `1.2.x`)
5. Once your PR is merged, tag a new release (this SHOULD always happen on master or release branches), e.g. using
```bash
git tag 1.2.0 -m "next release"
git push origin 1.2.0
```
travis will build this tag and push a package to [pypi](https://pypi.python.org/pypi/rasa)
6. **If this is a minor release**, a new release branch should be created pointing to the same commit as the tag to allow for future patch releases, e.g.
```bash
git checkout -b 1.2.x
git push origin 1.2.x
```
-->
### Code Style
1. Have fun :rocket:

## Code Style

To ensure a standardized code style we use the formatter [black](https://github.com/ambv/black).
To ensure our type annotations are correct we use the type checker [pytype](https://github.com/google/pytype).
If your code is not formatted properly or doesn't type check, travis will fail to build.

#### Formatting
### Formatting

If you want to automatically format your code on every commit, you can use [pre-commit](https://pre-commit.com/).
Just install it via `pip install pre-commit` and execute `pre-commit install` in the root folder.
Expand All @@ -117,20 +83,44 @@ To reformat files execute
make formatter
```

#### Type Checking
### Type Checking

If you want to check types on the codebase, install `pytype` using `pip install -r requirements-dev.txt`.
To check the types execute
```
make types
```
<!--
### Deploying documentation updates

We use `sphinx-versioning` to build docs for tagged versions and for the master branch.
The static site that gets built is pushed to the `docs` branch of this repo, which doesn't contain
any code, only the site.
## Running the tests

`Still needed`

## Deployment

`Still needed`

## Built With

* [Python](https://www.python.org/) - The main programing language used

## Contributing

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

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).

## Authors

* **Raphael Pinto** - *Creator* - [ralphg6](https://github.com/ralphg6)

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

## License

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

## Acknowledgments

We host the site on netlify. When there is a reason to update the docs (e.g. master has changed or we have
tagged a new version) we trigger a webhook on netlify (see `.travis.yml`).
-->
`Still needed`

0 comments on commit 138d743

Please sign in to comment.