2026-09-03 14:45:42 +03:00
2026-07-16 16:57:04 +03:00
2026-07-16 16:57:04 +03:00
2026-08-29 13:04:41 +03:00
2026-08-31 15:39:35 +03:00
2026-09-03 14:45:42 +03:00
2026-08-23 14:51:07 +03:00
2026-08-12 18:36:56 +03:00
2026-08-29 13:04:41 +03:00
2026-07-16 16:31:36 +03:00
2026-09-02 14:42:48 +03:00
2026-08-29 13:04:41 +03:00
2026-08-29 13:04:41 +03:00
2026-08-29 13:04:41 +03:00
2026-08-18 19:33:41 +03:00
2026-08-29 13:15:24 +03:00

The_DisExcel_project

A FastAPI project combining Excel and digital data ("The Great Excel project that is going to be built from Excel and digital projects").

Stack

  • Python >= 3.13
  • FastAPI + Uvicorn / Gunicorn
  • SQLAlchemy 2.0 (async) + Alembic (migrations)
  • PostgreSQL (asyncpg, psycopg2)
  • Pydantic 2 / Pydantic Settings
  • Poetry — dependency management
  • Docker, Ansible — deployment

Architecture

src/
├── database/    # DB CRUD operations
├── errors/      # HTTP errors
├── logging/     # logging middleware
├── migrations/  # Alembic migrations
├── models/      # Pydantic and SQLAlchemy models, configs
├── reports/     # reports
├── service/     # business logic (auth, users_crud)
└── web/         # routes (protected_routes)

Layers are connected top to bottom: web → service → database → models.

Authentication

  • JWT access + refresh tokens
  • Refresh token is stored in the DB as a SHA256 hash, with rotation and revocation support
  • Passwords are hashed with bcrypt
  • RBAC: direct user permissions + permissions via groups, checked through require_permissions()

Testing

tests/
├── unit/
├── integrated/
└── e2e/

Uses pytest, pytest-asyncio, pytest-cov, pytest-mock, allure-pytest.

Installation

poetry install

Running migrations

alembic upgrade head

CI/CD

Pipeline is set up via Gitea Actions (.gitea/workflows/ci.yml).

Deployment

The repository includes ready-made docker/ and ansible/ configs for containerization and deployment.

License

MH.Dmitrii's project

S
Description
No description provided
Readme
314 KiB
Languages
Python 94.1%
HTML 3.4%
Makefile 1.5%
Shell 0.6%
Mako 0.4%