Giter Club home page Giter Club logo

misw4406-propiedadesalpes's Introduction

PDA

Repositorio con código base para el desarrollo de una arquitectura hexagonal siguiendo los principios y patrones de DDD.

Estructura del proyecto

El repositorio en su raíz está estructurado de la siguiente forma:

  • src: En este directorio encuentra el código fuente para Propiedades de los Alpes.
  • src/pda: En este directorio se encuentra el código fuente para la aplicación Flask.
  • src/notifications: En este directorio se encuentra el código fuente para el módulo de notificaciones.
  • src/payments: En este directorio se encuentra el código fuente para el módulo de pagos.
  • src/tenant: En este directorio se encuentra el código fuente para el módulo de arrendatarios.
  • src/bff: En este directorio se encuentra el código fuente para el módulo de Backend for Frontend.
  • src/ui: En este directorio se encuentra el código fuente para la app web/interfaz gráfica.
  • .gitignore: Archivo con la definición de archivos que se deben ignorar en el repositorio GIT
  • .gitpod.yml: Archivo que define las tareas/pasos a ejecutar para configurar su workspace en Gitpod
  • README.md: El archivo que está leyendo
  • requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms pda (librerias Python)
  • notification-requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms notifications (librerias Python)
  • ui-requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms ui (librerias Python)
  • tenant-requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms tenant (librerias Python)
  • payments-requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms payments (librerias Python)
  • bff-requirements.txt: Archivo con los requerimientos para el correcto funcionamiento del ms bff (librerias Python)

Escenarios de calidad a probar

  • Escenario #9: Modificabilidad
  • Escenario #2: Escalabilidad
  • Escenario #6: Disponibilidad

Video - Entrega 3

Entrega.3.mp4

Video - Entrega 4

Entrega4.mp4

Video - Entrega 5

Entrega5.mp4

Ejecutar Aplicación

Para la ejecución de la aplicación, lo primero que se debe levantar es la infraestructura broker de Apache Pulsar y la del motor MySQL, esta se encuentra configurada para que se monte utilizando contenedores de Docker, por ende, para correr dicho broker, se debe hacer con el siguiente comando de Docker Compose:

docker compose --profile pulsar up

y en otra terminal, levantar el perfil de base de datos en MySQL

docker compose --profile db up

Cabe destacar que dicho comando construira las imagenes de docker asociadas a Apache Pulsar y MySQL (obtenidas desde el catálogos de imágenes de Docker), si es que estás existen.

Ahora es posible ejecutar los microservicios ui, pda/transactions y notifications.

PDA/Transactions

Desde el directorio principal ejecute el siguiente comando.

flask --app src/pda/api run --port 5001

Tenant

Desde el directorio src ejecute el siguiente comando

uvicorn tenant.main:app --host localhost --port 8002 --reload

Payments

Desde el directorio src ejecute el siguiente comando

uvicorn payments.main:app --host localhost --port 8001 --reload

BFF

Desde el directorio src ejecute el siguiente comando

uvicorn bff.main:app --host localhost --port 8005 --reload 

UI

Desde el directorio principal ejecute el siguiente comando.

python src/ui/main.py

Notifications

Desde el directorio principal ejecute el siguiente comando.

python src/notifications/main.py

Request de ejemplo

Los siguientes JSON pueden ser usados para probar el API:

Create Transaction (by BFF)

  • Endpoint: /v1/properties/transactions
  • Método: POST
  • Headers: Content-Type='aplication/json'
{
    "location": "Bucaramanga",
    "leases": [
        {
            "payments": [
                {
                    "amount": 100.00,
                    "date": "2022-11-22T15:10:00Z"
                }
            ]
        }
    ],
    "payment": {
        "amount": 100.00,
        "amount_vat": 119.00
    },
    "tenant": {
        "name": "Diego",
        "last_name": "Eslava"
    }

}

Postman

Cabe destacar, que dentro del directorio del proyecto, viene la colección de postman asociada a la prueba realizada durante el experimento hecho en el video. El archivo se llama:

No Monoliticas - Entrega 9.postman_collection

misw4406-propiedadesalpes's People

Contributors

acantu297366 avatar cgalvezv-uniandes avatar lmaero avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.