Skip to main content

A Django app to manage members, topics and more in an academic community

Project description

django-academic-community is a representation of an academic community on the web using Django.

Some more documentation is in the “docs” directory, but we are working on improving this.

Quick start for development

  1. You need at least python 3.7, postgres and pip installed

  2. Clone this repository:

    git clone https://gitlab.hzdr.de/hcdc/django/django-academic-community.git
    cd django-academic-communty
  3. Install the packages (in development mode):

    pip install .[dev]
  1. By default, we assume that there exists a django_academic_community database that is writeable for a user name django_academic_user with password admin. But you can change this with environment variables (see settings.py). Run:

    python manage.py migrate

    to setup the database.

  2. Install the packages for the JS and CSS files:

    npm install
  3. Build the JS and CSS files:

    make css
    make js
  4. Create a superuser via:

    python manage.py createsuperuser
  5. Run the local development server via:

    python manage.py runserver

    Open the topic browser at http://127.0.0.1:8000/topics, and the admin site at http://127.0.0.1:8000/admin

Building the docs

There is some static files generated via sphinx, together with an API documentation. The source code for this documentation is in the docs folder. If you installed this package with the above pip install command, you already have everything you need. The only thing that you should have installed already is graphviz (e.g. via conda install graphviz).

Navigate to the docs folder and run make html (on linux) or make.bat html on windows and open the file at docs/_build/html/index.html in your browser.

Some of the documentation in this content is also available through the admin docs. When you run the server (python manage.py runserver), navigate to the docs under http://127.0.0.1:8000/admin/docs.

Note that there is still a lot to work on for the documentation, so in case you are missing something, please do not hesitate to ask.

Running the tests

Just run tox (you installed it with pip install .[dev]). Note that you will need a running postgres server and a user with the rights to create a new postgres database.

Contributing

We are working on a more detailed contributing guide, but here is the short version:

When you want to contribute to the code, please do clone the source code repository and install it with the [dev] extra, i.e.

git clone https://gitlab.hzdr.de/hcdc/django/clm-community/django-academic-community/
cd django-academic-community
pip install -e .[dev]

We use automated formatters (see their config in pyproject.toml and setup.cfg), namely

  • Black for standardized code formatting

  • blackdoc for standardized code formatting in documentation

  • Flake8 for general code quality

  • isort for standardized order in imports.

  • mypy for static type checking on type hints

We highly recommend that you setup pre-commit hooks to automatically run all the above tools every time you make a git commit. This can be done by running

pre-commit install

from the root of the repository. You can skip the pre-commit checks with git commit --no-verify but note that the CI will fail if it encounters any formatting errors.

You can also run the pre-commit step manually by invoking

pre-commit run --all-files

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-academic-community-0.0.1.dev0.tar.gz (827.5 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page