# Fediversity Panel

The Fediversity Panel is a web service for managing Fediversity deployments with a graphical user interface, written in Django.

## Development

- To obtain all tools related to this project, enter the development environment with `nix-shell`.

  If you want to do that automatically on entering this directory:

  - [Set up `direnv`](https://github.com/nix-community/nix-direnv#installation)
  - Run `direnv allow` in the directory where repository is stored on your machine

    > **Note**
    >
    > This is a security boundary, and allows automatically running code from this repository on your machine.

- Run NixOS integration tests and Django unit tests:

  ```bash
  nix-build -A tests
  ```

- List all available Django management commands with:

  ```shell-session
  manage
  ```

- With a fresh database, run:

  ```
  manage migrate
  ```

- Run the server locally:

  ```shell-session
  manage runserver
  ```

- Create an admin user:

  ```shell-session
  manage createsuperuser
  ```

  and log in at <http://localhost:8000/admin>.

- After changing the database schema, add migrations and apply them:

  ```shell-session
  manage makemigrations
  manage migrate
  ```

- Use the [Django Debug Toolbar](https://github.com/django-commons/django-debug-toolbar) for troubleshooting in the browser