config | ||
lib | ||
priv | ||
test | ||
webapp | ||
.credo.exs | ||
.formatter.exs | ||
.gitignore | ||
.hanzo.yml | ||
.travis.yml | ||
app.json | ||
Aptfile | ||
CODE_OF_CONDUCT.md | ||
compile | ||
elixir_buildpack.config | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE.md | ||
logo.svg | ||
mix.exs | ||
mix.lock | ||
phoenix_static_buildpack.config | ||
Procfile | ||
README.md |
The first developer-oriented translation tool. Accent’s engine coupled with the asynchronous flow between the translator and the developer is what makes Accent the most awesome tool of all.
The Accent API provides a powerful abstraction around the process of translating and maintaining the translations of an app.
- Collaboration. Centralize your discussions around translations.
- History. Full history control and actions rollback. Who did what, when.
- UI. Simple yet powerful UI to enable translator and developer to be productive.
- GraphQL. The API that powers the UI is open and documented. It’s easy to build a plugin/cli/library around Accent.
Contents
Requirements
erlang ~> 20.1
elixir ~> 1.6.0
postgres >= 9.4
node.js >= 8.5.0
libyaml >= 0.1.7
Executing mix commands
The app is modeled with the Twelve-Factor App architecture, all configurations are stored in the environment.
When executing mix
commands, you should always make sure that the required environment variables are present. You can source
, use nv or a custom l33t bash script.
Every following steps assume you have this kind of system.
But Accent can be run with default environment variables if you have a PostgreSQL user named postgres
listening on port 5432
on localhost
.
Example
With nv
you inject the environment keys in the context with:
$ nv .env mix <mix command>
Quickstart
- If you don’t already have it, install
nodejs
withbrew install nodejs
- If you don’t already have it, install
elixir
withbrew install elixir
- If you don’t already have it, install
libyaml
withbrew install libyaml
- If you don’t already have it, install
postgres
withbrew install postgres
or the macOS app - Install dependencies with
mix deps.get
andnpm --prefix webapp install
- Create and migrate your database with
mix ecto.setup
- Start Phoenix endpoint with
mix phx.server
- Start Ember server with
npm --prefix webapp run start
- That’s it!
Environment variables
Accent provides a default value for every required environment variable. This means that with the right PostgreSQL setup, you can just run mix phx.server
.
Variable | Default | Description |
---|---|---|
MIX_ENV |
dev |
The application environment (dev , prod , or test ) |
DATABASE_URL |
postgres://localhost/accent_development |
A valid database URL |
CANONICAL_HOST |
localhost |
The host that will be used to build internal URLs |
PORT |
4000 |
A port to run the API on |
WEBAPP_PORT |
4200 |
A port to run the Webapp on (only used in dev environment) |
API_HOST |
http://localhost:4000 |
The API host |
API_WS_HOST |
ws://localhost:4000 |
The API Websocket host |
Production setup
Variable | Default | Description |
---|---|---|
SENTRY_DSN |
none | The secret Sentry DSN used to collect API runtime errors |
WEBAPP_SENTRY_DSN |
none | The public Sentry DSN used to collect Webapp runtime errors |
GOOGLE_API_CLIENT_ID |
none | When deploying in a prod environment, the Google login is the only way to authenticate user. In dev environment, a fake login provider is used so you don’t have to setup a Google app. |
RESTRICTED_DOMAIN |
none | If specified, only authenticated users from this domain name will be able to create new projects. |
Email setup
If you want to send emails, you’ll have to configure the following environment variables:
Variable | Default | Description |
---|---|---|
WEBAPP_EMAIL_HOST |
none | The Web client’s hostname. Used in the sent emails to link to the right URL. |
MAILER_FROM |
none | The email address used to send emails. |
SMTP_ADDRESS |
none | The SMTP server address you want to use to send your emails. |
SMTP_PORT |
none | The port ex: (25, 465, 587). |
SMTP_USERNAME |
none | The username for authentification. |
SMTP_PASSWORD |
none | The password for authentification. |
SMTP_API_HEADER |
none | An optional API header that will be added to sent emails. |
Tests
API
Accent provides a default value for every required environment variable. This means that with the right PostgreSQL setup (and a few setup commands), you can just run mix test
.
$ npm --prefix webapp run build
$ mix run ./priv/repo/seeds.exs
$ mix test
Deploy on Heroku
An Heroku-compatible app.json
makes it easy to deploy the application on Heroku.
Contribute
Before opening a pull request, please open an issue first.
Once you’ve made your additions and the test suite passes, go ahead and open a PR!
Don’t forget to run the ./priv/scripts/ci-check.sh
script to make sure that the CI build will pass :)
Contributors
License
Accent is © 2015-2018 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md
file.
About Mirego
Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We’re a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.
We also love open-source software and we try to give back to the community as much as we can.