Sign inSign up

jfxs/aerodebrief-api

By jfxs

•Updated 29 days ago

A lightweight automatically updated AeroDebrief backend Django API server

Image
0

2.7K

jfxs/aerodebrief-api repository overview

⁠AeroDebrief Backend

Django backend for the AeroDebrief flight analysis platform.

Software License semantic-release: angular Pipeline Status

Docker Hub The Docker Hub registry.

Quay.io The Quay.io registry.

Docker tags: 1.5.2-001, 1.5, 1, latest

⁠Overview

API backend for the AeroDebrief application. Handles flight data management and analysis. Uses Django Ninja for REST APIs and PostgreSQL for storage.

⁠Features

  • Fleet Management — Aircraft tracking (registration, type, MTOW).
  • User Management — Authentication via Django allauth⁠.
  • API — RESTful endpoints with Django Ninja⁠.
  • Docker — Containerized dev and deployment environments.
  • Code Quality — mypy/pyrefly (strict typing), ruff (lint/format), pre-commit hooks.
  • Testing — Unit tests and functional tests with pytest⁠ and factory_boy.
  • Task Automation — Common tasks managed with Taskfile⁠.

⁠Quick Start

⁠Prerequisites
⁠Installation
  1. Clone the repository:

    git clone https://gitlab.com/op_so/projects/aerodebrief-backend.git
    cd aerodebrief-backend
    
  2. Install dependencies:

    uv sync
    
  3. Set up the environment: Copy the example environment file and adjust as needed.

    cp env.example .env
    
  4. Create local data directories and start infrastructure:

    task 00:020-create-data-dir
    rm -rf ./.data/postgresql
    mkdir -p ./.data/postgresql && chmod 777 ./.data/postgresql
    docker compose up
    task 00:030-reset-db
    uv run manage.py runserver
    

    API: http://127.0.0.1:8000/api/v1
    Doc: http://127.0.0.1:8000/api/v1/docs
    Admin: http://127.0.0.1:8000/admin
    Mailpit: http://127.0.0.1:8025/
    PgAdmin: http://127.0.0.1:8888/

⁠Development

Common tasks are available via Taskfile:

⁠Code Quality & Testing
CommandDescription
task 00:110-formatFormat code with ruff.
task 00:120-lintLint with ruff.
task 00:130-type-checkType check with mypy and pyrefly.
task 00:220-run-testsRun tests with pytest.
task 00:999-pre-commitRun all pre-commit checks.
⁠Database Management
CommandDescription
task 00:030-reset-dbReset DB, run migrations, create superuser.
⁠Docker Local Dev
CommandDescription
task 00:710-docker-build-local-devBuild dev images locally (aerodebrief-api:dev, aerodebrief-rp:dev).
task 00:730-docker-test-localRun HTTP tests against the local Docker stack (port 8080).

Run the full local stack after building images:

docker compose -f compose.local.dev.yml up

⁠Software Bill of Materials

NameVersionType
SimpleLauncher1.1.0.14
adduser3.152deb
aerodebrief-backend0.0.0python
annotated-types0.8.0python
apt3.0.3deb
asgiref3.12.1python
base-files13.8+deb13u6deb
base-passwd3.6.7deb
bash5.2.37-2+b9deb
bsdutils1:2.41.5-0+deb13u1deb
ca-certificates20250419deb
cffi2.1.1python
coreutils9.7-3deb
cryptography50.0.0python
dash0.5.12-12deb
debconf1.5.91deb
debian-archive-keyring2025.1deb
debianutils5.23.2deb
diffutils1:3.10-4deb
django6.1python
django-allauth65.19.1python
django-cors-headers4.9.0python
django-ninja1.6.3python
dnspython2.8.0python
dpkg1.22.22deb
email-validator2.3.0python
findutils4.10.0-3deb
gcc-14-base14.2.0-19deb
grep3.11-4deb
gunicorn26.1.0python
gzip1.13-1deb
hostname3.25deb
idna3.19python
init-system-helpers1.69~deb13u1deb
libacl12.3.2-2+b1deb
libapt-pkg7.03.0.3deb
libattr11:2.5.2-3deb
libaudit-common1:4.0.2-2deb
libaudit11:4.0.2-2+b2deb
libblkid12.41.5-0+deb13u1deb
libbsd00.12.2-2deb
libbz2-1.01.0.8-6deb
libc-bin2.41-12+deb13u3deb
libc62.41-12+deb13u3deb
libcap-ng00.8.5-4+b1deb
libcap21:2.75-10+deb13u1+b1deb
libcrypt11:4.4.38-1deb
libdb5.3t645.3.28+dfsg2-9deb
libdebconfclient00.280deb
libffi83.4.8-2deb
libgcc-s114.2.0-19deb
libgdbm6t641.24-2deb
libgmp102:6.3.0+dfsg-3deb
libhogweed6t643.10.1-1deb
liblastlog2-22.41.5-0+deb13u1deb
liblz4-11.10.0-4deb
liblzma55.8.1-1+deb13u1deb
libmd01.1.0-2+b1deb
libmount12.41.5-0+deb13u1deb
libncursesw66.5+20250216-2deb
libnettle8t643.10.1-1deb
libpam-modules1.7.0-5deb
libpam-modules-bin1.7.0-5deb
libpam-runtime1.7.0-5deb
libpam0g1.7.0-5deb
libpcre2-8-010.46-1~deb13u1deb
libreadline8t648.2-6deb
libseccomp22.6.0-2deb
libselinux13.8.1-1deb
libsemanage-common3.8.1-1deb
libsemanage23.8.1-1deb
libsepol23.8.1-1deb
libsmartcols12.41.5-0+deb13u1deb
libsqlite3-03.46.1-7+deb13u1deb
libssl3t643.5.6-1~deb13u2deb
libstdc++614.2.0-19deb
libsystemd0257.13-1~deb13u1deb
libtinfo66.5+20250216-2deb
libudev1257.13-1~deb13u1deb
libuuid12.41.5-0+deb13u1deb
libxxhash00.8.3-2deb
libzstd11.5.7+dfsg-1deb
login1:4.16.0-2+really2.41.5-0+deb13u1deb
login.defs1:4.17.4-2deb
mawk1.3.4.20250131-1deb
mount2.41.5-0+deb13u1deb
ncurses-base6.5+20250216-2deb
ncurses-bin6.5+20250216-2deb
netbase6.5deb
openssl3.5.6-1~deb13u2deb
openssl-provider-legacy3.5.6-1~deb13u2deb
passwd1:4.17.4-2deb
perl-base5.40.1-6deb
pip26.2.1python
psycopg3.3.4python
psycopg-binary3.3.4python
pycparser3.0python
pydantic2.13.4python
pydantic-core2.46.4python
pyjwt2.13.0python
python3.14.7UnknownPackage
python-dotenv1.2.3python
readline-common8.2-6deb
sed4.9-2+deb13u1deb
sqlparse0.6.0python
sqv1.3.0-3+b2deb
structlog26.1.0python
sysvinit-utils3.14-4deb
tar1.35+dfsg-3.1deb
typing-extensions4.16.0python
typing-inspection0.4.4python
tzdata2026b-0+deb13u1deb
util-linux2.41.5-0+deb13u1deb
zlib1g1:1.3.dfsg+really1.3.1-1+b1deb

⁠Authors

⁠License

This project is licensed under the GNU Affero General Public License (AGPL) - see the LICENSE⁠ file for details.

Tag summary

Content type

Image

Digest

sha256:2ef145137…

Size

70.7 MB

Last updated

29 days ago

docker pull jfxs/aerodebrief-api