├── .editorconfig ├── .envrc ├── .flake8 ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── mypy.ini ├── pyproject.toml ├── renovate.json ├── requirements.txt ├── src ├── api_specification │ └── public_api.yaml ├── hexarch_project │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── test_settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py └── myapp │ ├── application │ ├── adapter │ │ ├── api │ │ │ └── http │ │ │ │ ├── article_vote_view.py │ │ │ │ ├── exceptions_handler.py │ │ │ │ ├── problem_response.py │ │ │ │ └── serializer │ │ │ │ ├── successfully_voted_result_serializer.py │ │ │ │ └── vote_for_article_command_deserializer.py │ │ └── spi │ │ │ └── persistence │ │ │ ├── entity │ │ │ ├── article_vote_entity.py │ │ │ └── voting_user_entity.py │ │ │ ├── exceptions │ │ │ └── voting_user_not_found.py │ │ │ └── repository │ │ │ └── voting_user_repository.py │ ├── domain │ │ └── model │ │ │ ├── identifier │ │ │ ├── article_id.py │ │ │ └── user_id.py │ │ │ ├── karma.py │ │ │ ├── vote.py │ │ │ ├── vote_for_article_result.py │ │ │ └── voting_user.py │ ├── port │ │ ├── api │ │ │ ├── command │ │ │ │ └── vote_for_article_command.py │ │ │ └── vote_for_article_use_case.py │ │ └── spi │ │ │ ├── find_voting_user_port.py │ │ │ └── save_voting_user_port.py │ ├── service │ │ └── article_rating_service.py │ └── util │ │ ├── assert_never.py │ │ └── transactional.py │ ├── apps.py │ ├── dependencies_container.py │ ├── migrations │ ├── 0001_initial.py │ ├── 0002_populate_demo_user_and_article_data.py │ └── __init__.py │ ├── models.py │ └── urls.py └── tests └── test_myapp ├── application ├── adapter │ ├── api │ │ └── http │ │ │ └── test_article_vote_view.py │ └── spi │ │ └── persistence │ │ └── repository │ │ └── test_voting_user_repository.py ├── conftest.py ├── domain │ └── model │ │ └── test_voting_user.py ├── service │ └── test_article_rating_service.py ├── test_api.py └── util │ └── test_transactional.py ├── make_requests.py └── test_dependencies_container.py /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/.editorconfig -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | export VIRTUAL_ENV=.venv 2 | layout python 3 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/.flake8 -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/README.md -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/mypy.ini -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/pyproject.toml -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/renovate.json -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/requirements.txt -------------------------------------------------------------------------------- /src/api_specification/public_api.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/api_specification/public_api.yaml -------------------------------------------------------------------------------- /src/hexarch_project/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/hexarch_project/asgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/hexarch_project/asgi.py -------------------------------------------------------------------------------- /src/hexarch_project/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/hexarch_project/settings.py -------------------------------------------------------------------------------- /src/hexarch_project/test_settings.py: -------------------------------------------------------------------------------- 1 | from .settings import * # noqa 2 | 3 | TESTING = True 4 | -------------------------------------------------------------------------------- /src/hexarch_project/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/hexarch_project/urls.py -------------------------------------------------------------------------------- /src/hexarch_project/wsgi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/hexarch_project/wsgi.py -------------------------------------------------------------------------------- /src/manage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/manage.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/api/http/article_vote_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/api/http/article_vote_view.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/api/http/exceptions_handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/api/http/exceptions_handler.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/api/http/problem_response.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/api/http/problem_response.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/api/http/serializer/successfully_voted_result_serializer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/api/http/serializer/successfully_voted_result_serializer.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/api/http/serializer/vote_for_article_command_deserializer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/api/http/serializer/vote_for_article_command_deserializer.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/spi/persistence/entity/article_vote_entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/spi/persistence/entity/article_vote_entity.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/spi/persistence/entity/voting_user_entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/spi/persistence/entity/voting_user_entity.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/spi/persistence/exceptions/voting_user_not_found.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/spi/persistence/exceptions/voting_user_not_found.py -------------------------------------------------------------------------------- /src/myapp/application/adapter/spi/persistence/repository/voting_user_repository.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/adapter/spi/persistence/repository/voting_user_repository.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/identifier/article_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/identifier/article_id.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/identifier/user_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/identifier/user_id.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/karma.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/karma.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/vote.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/vote.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/vote_for_article_result.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/vote_for_article_result.py -------------------------------------------------------------------------------- /src/myapp/application/domain/model/voting_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/domain/model/voting_user.py -------------------------------------------------------------------------------- /src/myapp/application/port/api/command/vote_for_article_command.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/port/api/command/vote_for_article_command.py -------------------------------------------------------------------------------- /src/myapp/application/port/api/vote_for_article_use_case.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/port/api/vote_for_article_use_case.py -------------------------------------------------------------------------------- /src/myapp/application/port/spi/find_voting_user_port.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/port/spi/find_voting_user_port.py -------------------------------------------------------------------------------- /src/myapp/application/port/spi/save_voting_user_port.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/port/spi/save_voting_user_port.py -------------------------------------------------------------------------------- /src/myapp/application/service/article_rating_service.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/service/article_rating_service.py -------------------------------------------------------------------------------- /src/myapp/application/util/assert_never.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/util/assert_never.py -------------------------------------------------------------------------------- /src/myapp/application/util/transactional.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/application/util/transactional.py -------------------------------------------------------------------------------- /src/myapp/apps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/apps.py -------------------------------------------------------------------------------- /src/myapp/dependencies_container.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/dependencies_container.py -------------------------------------------------------------------------------- /src/myapp/migrations/0001_initial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/migrations/0001_initial.py -------------------------------------------------------------------------------- /src/myapp/migrations/0002_populate_demo_user_and_article_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/migrations/0002_populate_demo_user_and_article_data.py -------------------------------------------------------------------------------- /src/myapp/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/myapp/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/models.py -------------------------------------------------------------------------------- /src/myapp/urls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/src/myapp/urls.py -------------------------------------------------------------------------------- /tests/test_myapp/application/adapter/api/http/test_article_vote_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/adapter/api/http/test_article_vote_view.py -------------------------------------------------------------------------------- /tests/test_myapp/application/adapter/spi/persistence/repository/test_voting_user_repository.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/adapter/spi/persistence/repository/test_voting_user_repository.py -------------------------------------------------------------------------------- /tests/test_myapp/application/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/conftest.py -------------------------------------------------------------------------------- /tests/test_myapp/application/domain/model/test_voting_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/domain/model/test_voting_user.py -------------------------------------------------------------------------------- /tests/test_myapp/application/service/test_article_rating_service.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/service/test_article_rating_service.py -------------------------------------------------------------------------------- /tests/test_myapp/application/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/test_api.py -------------------------------------------------------------------------------- /tests/test_myapp/application/util/test_transactional.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/application/util/test_transactional.py -------------------------------------------------------------------------------- /tests/test_myapp/make_requests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/make_requests.py -------------------------------------------------------------------------------- /tests/test_myapp/test_dependencies_container.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BasicWolf/hexagonal-architecture-django/HEAD/tests/test_myapp/test_dependencies_container.py --------------------------------------------------------------------------------