Poly is open source, modern software to share and learn every language in the world.
Poly streamlines the process of creating and sharing dictionaries between any two languages. Speakers of languages without a written standard, including the world's more than 200 sign languages, are supported by native video functionality.
- Background
- About Wikitongues
- Set-up
- Pre-requisites
- Install
- Run
- Test 1. Staging and Production 1. Continuous Integration 1. Browser testing
- Usage
- Feature map
- Security
- Maintainers
- Contribute
- Request features
- PRs are accepted
- Best practices
- Code of conduct
- License
Poly was conceived in response to a New York Times article that identified one of the last living speakers of her native language Wukchumni manually composing documentation using pen, paper and a voice recorder. Through years of dedication, Marie Wilcox produced an exhaustive dictionary of her mother language, with supplemental recordings, to be used by future generations in their revitalization efforts.
Marie's reality is not unique, and over 5% of the languages spoken in the world today are expected to have fewer than 100 speakers. We at Wikitongues resolved to provide tools to facilitate the experience of documentation.
Initial development on Poly was made possible by record-breaking a Kickstarter campaign. Thank you very much to all our backers.
About Wikitongues
In the next eighty years, 3,000 languages are expected to disappear. We won't let that happen.
Wikitongues is a platform for every language in the world. We publish oral histories and dictionaries in all of the world's 7,000 languages and develop open source technology for cultural exchange.
The Oral Histories project lives on YouTube.
Poly is written in Ruby on Rails and React.js, and uses RecordRTC for video recording. It uses a PostgreSQL database, is deployed to Heroku and uses Amazon S3 as CDN. RecordRTC relies on NPM, which in turn requires Browserify.
To install and set up this application locally, follow the steps below. For any specific questions, please email us at [email protected].
You will need the following things properly installed on your computer:
- Git
- Ruby 2.3.0 (check what version of ruby you have by running
ruby -v
) - NPM (Installed with Node.js)
- Bundler (run
$ gem install bundler
)
- Clone or fork this repository:
git clone https://github.com/wikitongues/poly.git
- Change into the new directory.
- Install all dependencies:
bundle install && npm install
- Create a Postgres database:
rake db:setup
To start the application locally, run:
rails server
Then, visit the app at https://localhost:3000.
Testing is implemented with RSpec, FactoryGirl, shouldamatchers and simplecov.
To run tests:
rspec
Poly has both a Staging server and the live production server.
Poly uses Continuous integration as provided by CircleCI.com. Right out of the box, it provides automated testing and automatically deploys merged changes to the staging server.
We're proud to do our live, web-based browser testing together with the awesome people at BrowserStack.
BrowserStack gives you instant access to all real mobile and desktop browsers. Say goodbye to your lab of devices and virtual machines. Go check them out!
The app is intended to be used via the UI by any person with access to a modern browser. As of February 21st, 2017, anyone will be able to create an account and start creating content.
We use semantic versioning.
For an overview of planned features and future releases, refer to ROADMAP.md.
The app requires a number of secret keys to function correctly. Features that will not work locally without keys:
- Password reset
- Video recording
Freddie Andrade | |
---|---|
Chris Voxland |
Ben Arias | |
---|---|
Amr Adel | |
Scott Rohrer |
We are actively looking for help developing Poly. If you're interested in getting involved, be sure to let us know!
Feature requests may be made by opening new issues and labeling them enhancements.
Note on requesting features:
Before making a new request, please review our roadmap and issues list to avoid duplicates. If a feature is already described, please feel free to add your support in the comments!
Make pull requests to have your contributions reviewed and deployed by the maintainers, or contact us directly by email at [email protected].
Refer to the Github Contribution guide or the more comprehensive Open-Source Contribution Guide for best practices in contributing to open source projects.
All contributors will be held accountable to the Contributor Covenant.
TLDR: be nice. But go read it anyway.
Poly uses the GNU General Purpose License v3.
Read the license in detail here.