0.0.10 • Published 4 years ago

generator-badong v0.0.10

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

Image of Badong

Badong - The PearlPay Backend API Code Generator

Yeoman generator for creating PearlPay backend microservice using python, django and mysql. Lets you quickly set up a project following best practices.

Usage

Install yo, and generator-badong:

$ npm install -g yo generator-badong

Folder Structure

We follow onion architecture

.
├── app
│   ├── application          # Interfaces
│   │   ├── __init__.py
│   │   ├── services         # Service interface
│   │   │   └── ...
│   │   ├── repositories     # Repository interface
│   │   │   └── ...
│   │   └── use_cases        # Interface implementation
│   │       └── ...
│   ├── domain               # Domain entities
│   │   └── ...
│   ├── infrastructure       # Implementations
│   │   ├── migrations         
│   │   │   └── ...
│   │   ├── models
│   │   │   └── ...
│   │   ├── modules
│   │   │   └── ...
│   │   ├── repositories
│   │   │   └── ...
│   │   ├── serializers
│   │   │   └── ...
│   │   ├── services
│   │   │   └── ...
│   │   └── views        
│   │       └── ...
│   ├── new_app_name        # Django settings
│   │   └── ...
│   └── requirements.txt
├── buildspec.yml
├── docker-compose.yml
├── Dockerfile
├── features                 # BDD feature files
│   └── ...
├── README.md
└── tests
    └── ...

Generators

Available generators:

App

Sets up a new PearlPay backend microservice, generating all the boilerplate you need to get started.

Usage:

    $ yo badong
    ? What is the base name of your application? new app name

Generate

Generates and wires a model, view, service, repository and test artifacts.

Example:

    $ yo badong:generate
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/dto/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/domain/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/repositories/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/services/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/use_cases/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/models/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/modules/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/app/badong_app/settings.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/repositories/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/serializers/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/services/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/views/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/urls.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/tests/modules/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/tests/test_settings.py!
create app/application/dto/somename.py
create app/domain/somename.py
create app/application/repositories/somename.py
create app/application/services/somename.py
create app/application/use_cases/somename.py
create app/infrastructure/models/somename.py
create app/infrastructure/modules/somename.py
create app/infrastructure/repositories/somename.py
create app/infrastructure/serializers/somename.py
create app/infrastructure/services/somename.py
create app/infrastructure/views/somename.py
create tests/component/test_somename.py
create tests/modules/test_somename_module.py
create tests/mock/repository/somename.py
create tests/mock/service/somename.py
create tests/use_case/somename_use_case/test_somename_use_case.py

App-Dto

Generates application dto artifact.

Example:

    $ yo badong:app-dto
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/dto/__init__.py!
create app/application/dto/somename.py

Domain

Generates application model artifact.

Example:

    $ yo badong:domain
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/domain/__init__.py!
create app/domain/somename.py

App-Repo

Generates application repository artifact.

Example:

    $ yo badong:app-repo
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/repositories/__init__.py!
create app/application/repositories/somename.py

App-Service

Generates application service artifact.

Example:

    $ yo badong:app-service
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/services/__init__.py!
create app/application/services/somename.py

App-Use-Case

Generates application use-case artifact.

Example:

    $ yo badong:app-use-case
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/use_cases/__init__.py!
create app/application/use_cases/somename.py

Infra-Model

Generates infrastructure model artifact.

Example:

    $ yo badong:infra-model
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/models/__init__.py!
create app/infrastructure/models/somename.py

Infra-Module

Generates infrastructure module artifact.

Example:

    $ yo badong:infra-module
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/modules/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/app/badong_app/settings.py!
create app/infrastructure/modules/somename.py

Infra-Repo

Generates infrastructure repository artifact.

Example:

    $ yo badong:infra-repo
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/repositories/__init__.py!
create app/infrastructure/repositories/somename.py

Infra-Serializer

Generates infrastructure serializer artifact.

Example:

    $ yo badong:infra-serializer
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/serializers/__init__.py!
create app/infrastructure/serializers/somename.py

Infra-Service

Generates infrastructure service artifact.

Example:

    $ yo badong:infra-service
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/services/__init__.py!
create app/infrastructure/services/somename.py

Infra-View

Generates infrastructure view artifact.

Example:

    $ yo badong:infra-view
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/views/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/urls.py!
create app/infrastructure/views/somename.py

Repo

Generates repository artifacts (app-dto + domain + app-repo + infra-model + infra-repo).

Example:

    $ yo badong:repo
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/dto/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/domain/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/repositories/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/models/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/repositories/__init__.py!
create app/application/dto/somename.py
create app/domain/somename.py
create app/application/repositories/somename.py
create app/infrastructure/models/somename.py
create app/infrastructure/repositories/somename.py

Service

Generates service artifacts (app-service + infra-service).

Example:

    $ yo badong:service
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/services/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/services/__init__.py!
create app/application/services/somename.py
create app/infrastructure/services/somename.py

View

Generates view artifacts (app-use-case + infra-serializer + infra-view).

Example:

    $ yo badong:view
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/use_cases/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/serializers/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/views/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/urls.py!
create app/application/use_cases/somename.py
create app/infrastructure/serializers/somename.py
create app/infrastructure/views/somename.py

Crud

Generates crud artifacts, it also adds a new view that uses django ViewSets instead of ViewAPI. (app-dto + domain + app-repo + infra-model + infra-repo + infra-serializer)

Example:

    $ yo badong:crud
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/views/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/dto/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/domain/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/application/repositories/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/models/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/repositories/__init__.py!
SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/app/infrastructure/serializers/__init__.py!
create app/infrastructure/views/somename.py
create app/application/dto/somename.py
create app/domain/somename.py
create app/application/repositories/somename.py
create app/infrastructure/models/somename.py
create app/infrastructure/repositories/somename.py
create app/infrastructure/serializers/somename.py

Test-Component

Generates component test artifacts.

Example:

    $ yo badong:test-component
    ? What is the name? someName

Produces:

SomeName was appended to /home/pearlpay/Projects/ewallet-backend/badong-app/tests/modules/__init__.py!
Registered SomeName to /home/pearlpay/Projects/ewallet-backend/badong-app/tests/test_settings.py!
create tests/component/test_somename.py
create tests/modules/test_somename_module.py
create tests/mock/repository/somename.py
create tests/mock/service/somename.py
create tests/use_case/somename_use_case/test_somename_use_case.py

Team

Badong is beautifully crafted by these people and a bunch of awesome contributors

Mark Ranosa
Mark Ranosa
0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago