GithubHelp home page GithubHelp logo

davidalphafox / level Goto Github PK

View Code? Open in Web Editor NEW

This project forked from derrickreimer/level

0.0 2.0 0.0 3.3 MB

An alternative to real-time chat for the software development workflow

Home Page: https://level.app

License: Other

Elixir 44.78% CSS 2.54% Elm 42.09% JavaScript 4.09% HTML 2.80% PLpgSQL 3.41% Shell 0.28%

level's Introduction

Level

CircleCI

Level is an alternative to real-time chat designed for the software development workflow.

Sign up at level.app to reserve your handle and get on the updates list.

Project Status

Level is currently in the pre-launch phase and under active development by a small team. Most tasks are being tracked offline as the foundations of the product come together, in the interest of rapid development and reaching an alpha stage for teams to start using it as quickly as possible.

As opportunities arise in the future for community contributions, we mark issues accordingly in the GitHub issue tracker.

Developer Setup

You'll need to install the following dependencies first:

Run the bootstrap script to install the remaining dependencies and create your development database:

cd level
script/bootstrap

If your local PostgreSQL install does not have a default postgres user, open the config/dev.secret.exs file and update the credentials. Then, run the bootstrap script again.

Use the script/server command to start up your local server and visit localhost:4000 from your browser.

Installing Node.js

This repository includes a .nvmrc file targeting a specific version of Node that is known to be compatible with all current node dependencies. Things might work with a newer version of Node, but the most guaranteed route is to install Node Version Manager and run nvm install from the project root.

Then, be sure to run script/bootstrap to install node dependencies with the correct version of node.

Running tests and analyses

We have a handful of helper scripts available:

  • script/elixir-test: runs the Elixir test suite with coveralls
  • script/elm-test: runs the Elm test suite
  • script/test: runs the Elixir and Elm test suites
  • script/static-analysis: runs Credo (Elixir linting), Dialyzer, and Elixir formatter verification
  • script/build: runs all the test suites and static analysis

Dependencies

The following environment variables must be set in production:

Variable Description
AWS
AWS_ACCESS_KEY_ID The AWS access key id for your account (with access to S3).
AWS_SECRET_ACCESS_KEY The AWS secret access key corresponding to the access key id.
LEVEL_ASSET_STORE_BUCKET The name of the S3 bucket in which to store uploaded assets.
Host
PORT The port on which to host the application (typically 80).
LEVEL_HOST The domain on which you are serving the app (used for generating URLs).
LEVEL_MAILER_HOST The domain via which to send transaction emails (usually same as LEVEL_HOST).
LEVEL_SECRET_KEY_BASE A secret key for verifying the integrity of signed cookies.
Database
LEVEL_DATABASE_URL The URL for the PostgreSQL database.
LEVEL_POOL_SIZE The maximum number of database connections each process may consume.
SMTP
We recommend Postmark.
LEVEL_SMTP_HOST The hostname of the your SMTP provider.
LEVEL_SMTP_PORT The port number for your SMTP provider.
LEVEL_SMTP_USERNAME The username for your SMTP provider.
LEVEL_SMTP_PASSWORD The password for your SMTP provider.
Web Push Notifications
See instructions here: https://github.com/web-push-libs/web-push#command-line
LEVEL_WEB_PUSH_PUBLIC_KEY A VAPID public key.
LEVEL_WEB_PUSH_PRIVATE_KEY A VAPID private key.
Monitoring
HONEYBADGER_API_KEY The API key for Honeybadger.io exception monitoring (Elixir).
HONEYBADGER_JS_API_KEY The API key for Honeybadger.io exception monitoring (JavaScript).

Documentation

Run the script/docs to generate and view the project ExDocs locally.

Heroku Deployment (Experimental)

One of our goals is to make self-installation as painless as possible for those who are interested in hosting their own instance.

The relevant configuration files for Heroku live here:

We are aiming to keep seamless Heroku deployment up-to-date, with a few important "alpha software" notes:

  • It's possible you may find it broken on master. If you do, please file an issue.
  • As deployment needs grow more complex, it may become no longer feasible to support Heroku deploys. Caveat emptor.

Required additional services

In addition to a Heroku account, you'll need the following services to get your Heroku install up and running:

  • An AWS account and an S3 bucket for storing file uploads. You'll be asked for AWS API keys and bucket name environment variables during setup.
  • A transactional email provider (we recommend Postmark). You'll be asked for SMTP host, port, username, and password environment variables during setup.

Deploy

Copyright

© 2018 Level Technologies, LLC

Level is source-available software. (license | readme)

level's People

Contributors

cas27 avatar davecremins avatar derrickreimer avatar devonestes avatar mitjabezensek avatar mjankowski avatar pradyumna2905 avatar r00k avatar theevangelista avatar tomsun avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.