License Master Build Status

Diskusi

diskusi is a comments system and discussion board inspired by Disqus.

Prerequisites

Develop and Compile Dependencies

The following binaries / libraries need to be installed in order to compile the web application. The version numbers denotes the specific version used to develop (and release-test) the web application, it may or may not work under other minor versions:

Services (Database) Dependencies

The following applications need to be installed in order to provision an Ubuntu guest VM (1 core, 1GB RAM) which will contain the necessary services:

The following Vagrant plugin is not mandatory, but help speed up subsequent box provisioning by caching common packages:

Successful Vagrant provisioning will enable the following services to be available within a guest VM:

Setup Steps

  1. Configure the services:

    1. Run vagrant up
  2. Install dependencies:

    1. Install Phoenix dependencies with mix deps.get
    2. Install npm dependencies with npm install
  3. Data store setup:

    1. Create database with mix ecto.create
    2. Migrate database with mix ecto.migrate
    3. Seed the database with mix run priv/repo/seeds.exs
  4. Run tests:

    1. Run Elixir tests with mix test
    2. Run JavaScript and Elm tests with npm test
  5. Start application with mix phoenix.server

Now you can visit localhost:4000 from your browser.

Other Commands

  • mix dialyzer to run Dialyzer type-checker
  • mix credo to run Credo static analysis tool
  • mix docs to run ex_doc doc-comment documentation generator

NOTE: Run mix do deps.get, deps.compile, dialyzer --plt before running Dialyzer for the first time. It will build the PLT (Persistent Lookup Table) type information and may take a few minutes to complete.

Contributing

We follow the “feature-branch” Git workflow.

  1. Commit changes to a branch in your fork (use snake_case convention):

    • For technical chores, use chore/ prefix followed by the short description, e.g. chore/do_this_chore
    • For new features, use feature/ prefix followed by the feature name, e.g. feature/feature_name
    • For bug fixes, use bug/ prefix followed by the short description, e.g. bug/fix_this_bug
  2. Rebase or merge from “upstream”
  3. Submit a PR “upstream” to develop branch with your changes

Please read CONTRIBUTING for more details.

License

diskusi is released under the Apache Version 2.0 License. See the LICENSE file for further details.