ejplatform / ej-server

EJ uses gamification and machine learning to promote discussions and participation in a virtual democracy
https://ejplatform.github.io/ej-server/
Other
38 stars 17 forks source link

=========== EJ Platform

You can visit EJ website at https://www.ejplatform.org. For detailed information on developing and using our system, you can access our documentation on: https://www.ejplatform.org/docs/. For contributions, issues or feature requests join us on https://gitlab.com/pencillabs/ej/ej-application

Getting started

Local development (Docker)

First clone the repository::

$ git clone https://gitlab.com/pencillabs/ej/ej-application
$ cd ej-application

The recomended way to run EJ is with Docker. With it you can quickly start the development server using the commands::

$ pip3 install invoke==2.0.0 --user
$ inv docker-build
$ inv docker-up

This will deploy EJ using docker/docker-compose.yml file. Every change made on the repository will be reflected inside the docker_server container.

If you are creating a clean EJ instance, you can populate the database with some fake data::

$ inv docker-exec "poetry run inv db-fake"

You can access the running instance accessing http://localhost:8000.

To rebuild the server image, you can run inv docker-build --no-cache.

Some useful commands to manage docker environment:

================== ============================================= Command Description ================== ============================================= inv docker-up Creates EJ containers and run the application inv docker-logs Shows django logs inv docker-stop Stops EJ containers inv docker-rm Removes EJ containers inv docker-attach Connects to django container inv docker-exec Executes a command on django container inv docker-exec "poetry run inv docs" Compile .rst documentation ================== =============================================

Some useful commands to manage the application (run this inside django container):

=========================== ====================================================== Command Description =========================== ====================================================== poetry run inv i18n Extracts messages from Jinja templates for translation poetry run inv i18n -c Compile .po files poetry run inv sass Compile sass files poetry run inv sass --watch Watch changes on code, and compile .sass files poetry run inv db Prepare database and run migrations poetry run inv shell Executs django shell with ipython =========================== ======================================================

Tests

If you are making changes to EJ codebase, do not forget to run tests frequently. EJ uses Pytest_::

$ inv docker-test

Docker bash

You probably will want to execute commands inside the container. It is possible to open a bash shell in the main "web" container with::

$ inv docker-attach

You also can execute commands without open docker bash shell::

$ inv docker-exec "command"

Documentation

After configuring local environment, the next step is reading our documentation. It can be generated with::

$ inv docker-exec "poetry run inv docs"

and will be available at the http://localhost:8000/docs <http://localhost:8000/docs>_ url.