100 días de programación con Latinas en Tecnología Berlin
Progreso del dia: Investigue y comparti recursos en español de como crear una cuenta en Github, crear un repositorio, y editar un README.
Progreso del dia: Agregue una revisión ortográfica en un repositorio utilizando Cspell. Cree un comando para agregar palabras a el diccionario personalizado Makefile. También active la revision ortográfica automáticamente para que se revise todo el repositorio con un gancho pre-commit, utilizando Husky.
Progreso del dia: Agregue un recurso que agrega un comentario en los Pull Requests del repositorio de ayer desde un pipeline(CI/CD). El comentario contiene los resultados de la revisión ortográfica, para cuando los PR son creados desde GH directamente, ya que el repositorio es de documentación y no código.
Progreso del dia: Recuperé este dia con una hora de lectura de documentación de AWS Lambda, para repasar y resolver unas dudas de como escribir lambdas en Ts/node mas eficientemente con CDK.
Progreso del dia: Investigue como lograr un sistema para reservar citas usando un chatbot. De todas las opciones que vi la que mas me gusto fue esta. Intentare seguir el blogpost y hacer este, con unas cuantas modificaciones. Me gustaria hacerlo todo usando Infraestructura en forma de código (IaC) quizas con serverless o terraform no se. Defini mas o menos que quiero de la infraestructura y creo que omitire lo de la llamada y el mensaje de texto, optando mejor por confirmacion por email, o a través del chatbot si es posible. Y si puedo quizas integrar alguna forma de pago por la cita, vamos a ver...
Progreso del dia: Complete el diagrama de arquitectura con el que voy a empezar utilizando Draw.io. Empece a leer la documentación de Terraform. Y office-hours con las chicas de LeT-B.
Progreso del dia: Recuperé este dia con una hora de debuggig y refactoring de una lambda en Ts. optimize la memoria.
Progreso del dia: Empece a leer sobre dynamoDB streams como trigger para una lambda.
Progreso del dia: Recuperé este dia: Agregué un corrector ortográfico en español porque 🙈🙊
Progreso del dia: recupere este dia leyendo los siguientes artículos. -https://dev.to/saniadsouza/test-for-visual-regression-with-jest-image-snapshot-4i54
- https://www.digitalocean.com/community/tutorials/how-to-encode-and-decode-strings-with-base64-in-javascript
- y empece este pero no lo termine [https://reflectoring.io/getting-started-with-aws-step-functions-tutorial/ https://blog.searce.com/](https://reflectoring.io/getting-started-with-aws-step-functions-tutorial/ https://blog.searce.com/)
Progreso del dia: empece con el diagrama de arquitectura del servicio de facturación. instalé y configure AWS cli, CDK. typescript desde cero porque no estaba usando mi computador personal. implemente una lamba dummy en ts con este tutoriale implementé la infraestructura de DynamoDB, y S3.
Progreso del dia: practique usar PDFKit con este tutorial para generar una factura, personalize la factura con un logotipo y añadí el campo del IVA, etc.
Progreso del dia: Perdí el dia entero tratando de utilizar PDFKit en una lambda creada con CDK, nada que pude lograr que la lambda tuviera acceso al PDFKit 😭
Progreso del dia: Hoy empece con serverless, lei un poco, definí la base de datos y los permisos de ella, un funcion esqueleto, y un esqueleto de api para llamar a la base de datos.
Progreso del dia: Lei sobre permisos personalizados en serverless.
Progreso del dia: Practiqué la resolución de dependencias obsoletas para eliminar vulnerabilidades de seguridad. También actualicé node a la versión 16 en mi computador, ya que AWS va a depreciar v12 en las lambdas.
Progreso del dia: Hoy hice horas de oficina de LeA. Trabajé en el prototipo del servicio de facturación. Comparé qué plugin usar para Ts con serverless y lo aplique. Conseguí que una función creara un PDF (los paquetes correctos se desplegaron en la lambda) y devuelva el PDF codificado en base64. La segunda lambda graba la información de la factura a dynamo como respuesta a la petición del API. Lei un poco sobre AWS SES.
Progreso del dia: implementé es-lint, ts-lint, y prettier en el repositorio.
Progreso del dia: empece a escribir los tests. agregue a el packet.json los siguientes paquetes: Typescript, Jest, ts-jest, @types/jest. Creé la configuración para que jest utilize ts-jest.
Progreso del dia: Reorganice las funciones que generan el pdf en su propia biblioteca, y generé el PDF final.
Progreso del dia: Leí sobre pruebas de regresión visual automatizadas con jest y jest-image-snapshot. Conseguí que algunas pruebas funcionaran con un pdf, pero la herramienta que elegí guarda automáticamente los snapshots en formato png. Tengo que ver cómo hacer png's del pdf generado para comparar snapshots, o averiguar si la comparación de snapshots de pdf realmente funciona. La siguiente pista también fue útil, buffers a base64 en ts
Progreso del dia: implemente pdf2pic para convertir los PDFs generados en imágenes png y poderlos comparar con jest-image-snapshot. Finalmente logre una prueba de regresion visual que funciona.
Progreso del dia: Finalmente tengo una lambda que crea una factura en formato PDF. Por ahora la lambda me devuelve el PDF en base64. Creo que me va a servir para anexarlo a un email, también tengo pensado guardar una copia de las facturas en S3. Pero aun no he decidido como organizo los pasos. Estoy considerando utilizar AWS Stepfunctions para practicar. Asi podre agregar pasos manuales al flow también.
pistas de como usar buffers con pdfkit en lambda con serverless1, 2