Code Monkey home page Code Monkey logo

z1-frontend-developer's Introduction

💳️ BankClient App

App de BankClient donde se toma una foto y se comprueba con una API si esta es válida o no.

🚀 BankClient en producción!



CircleCI

⚙️ ¿Qué he usado?

Herramientas & librerías usadas para el projecto:



📝 Requisitos

Node tiene que estar instalado en el sistema, puedes:



👨‍💻 Lanza proyecto en Local

  1. Clona el repositorio
git clone https://github.com/Maluzzz/z1-frontend-developer.git
  1. Sitúate en la carpeta del proyecto
cd z1-frontend-developer
  1. Instala las librerías
npm i
  1. Lanza la app
npm run start

Este último paso debe abrir el navegador de tu ordenador con la url localhost:3000/ y debes ver una pantalla como esta:

image

  

📁 Estructura de ficheros

  • assets: Se ha usado para los iconos en svg e imágenes
  • components: Componentes reutilizables, se han pensado para que puedan reutilizarse en diferentes proyectos y vistas. Header, Button, Labels...
  • containers: Vistas y componentes. En este proyecto son sólo dos vistas: HomeView y PhotoView. Y dos componentes ligados al modelo, como es la vista de la cámara y el display del carnet.
  • model: En este caso hemos incluido el fichero types para tipos de typescript, y el fichero theme con los colores "corporativos" de BankClient
  • utils: Función fetcher para llamar al endpoint y otro fichero que contiene hook propio del proyecto.

🚧 Roadmap y mejoras

  • Añadir más test: Por ahora se cubren aspectos básicos, pero es necesario hacer mocks para el comportamiento de la cámara.
  • Añadir más test con user-event
  • Forzar a que la cámara se vea en horizontal en dispositivos móviles.
  • Si no se encuentra cámara disponible o no se le dan permisos se debe mostrar mensaje.

🙋 Comentarios

Voy a dejar aquí reflejado algunos puntos y "problemas" que me he encontrado al desarrollar este proyecto.

  • Enzyme+Tests: Intenté hacer los test con enzyme y jest, como están en el proyecto gif-app pero me encontré con un error que no conseguí solucionar aquí un issue abierto con el error. Por lo que me decanté por hacerlos con react-testing-library.

  • Canvas e ImageCapture.takePhoto(): intenté utilizar la interfaz de ImageCapture para tomar la foto, pero no es compatible con navegadores como: Safari, Firefox o internet explorer pero usar drawImage si lo era.

Hay algunas mejoras detalladas en Roadmap. Empecé sin usar un patrón definido para los mensajes del commit pero, al final, he intentado commitear más frecuentemente y usar Conventional Commits

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.