Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

EO principles respected here Managed by Zerocracy DevOps By We recommend RubyMine

Build Status PDD status Maven Central Coverage Status Hits-of-Code

License Availability at SixNines is a communication platform that enables smoothless integration of humans and software agents in a conversation-centered environment.

Try it at

The original idea behind Netbout is explained in USPTO patent application US 12/943,022.


A user is able to login, using one of the following social/federated methods: Facebook, Google+ and Github. A user is able to logout.

When user logs in for the first time, he must create a new "alias" inside Netbout. The system checks the validity of the alias and makes sure each alias is unique in the entire system.

A user can start a new "bout", which is a conversation between a few users.

A user can post a message to a bout and read all other messages, posted by other users, in reverse chronological order (the most recent messages on the top).

A user can invite other users to the bout, knowing just their aliases.

A user can attach a file to a bout. Any attached file can be deleted. A user can download any attached file.

How to test?

If you're a manual tester and want to contribute to a project, please login to, create an account and do whatever you think is reasonable to reveal functional and non-functional problems in the system. Each bug you find, report in a new Github issue.

Please, read these articles before starting to test and report bugs: Five Principles of Bug Tracking, Bugs Are Welcome, and Wikipedia's Definition of a Software Bug Is Wrong.

How to contribute?

If you're a software developer and want to contribute to the project, please fork the repository, make changes, and submit a pull request. We promise to review your changes same day and apply to the master branch, if they look correct.

Please run Maven (3.1 or higher!) build before submitting a pull request:

$ mvn clean install -Pqulice

If your default encoding is not UTF-8, some of unit tests will break. This is an intentional behavior. To fix that, set this environment variable in console (in Windows, for example):


Similarly, on Linux:

export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"

Run locally and test it

Want to run it locally? Simple as that:

$ mvn clean install -Phit-refresh -Dport=8080

In a minute the site is ready at http://localhost:8080

In case you are looking for an even quicker startup or experience failing tests, but still want to run the site, you can skip the tests by running:

$ mvn clean install -DskipTests -Phit-refresh -Dport=8080

Integration tests

It is highly recommended to run integration tests to guarantee that your changes will not break any other part of the system. Follow these steps to execute integration tests:

  1. Open your browser's console and go to network view;
  2. Access the netbout server you want to test with and log in (if you are not). You may access production site or your local snapshot http://localhost:8080;
  3. On network monitor of your browser, select the connection that requested main page
  4. On that request, search for the response headers.
  5. You will find a key named Set-Cookie on that response.
  6. The value of that header, contains a lot of other key values content. Search for content of PsCookie variable and copy that content.
  7. Go back to you console and run the following code, replacing the ${cookie_value} for the content that you copied from PsCookie, replacing the ${netbout_server} for the site that you accessed:
$ mvn clean install -Dnetbout.token=${cookie_value} -Dnetbout.url=${netbout_server}