Code Monkey home page Code Monkey logo

cc-easy-credit's Introduction

Easy Credit

Video de demostración

video

Asunciones hechas

Técnicas

  • Opté por usar java para el backend:
    • Las dependencias se manejan en gradle, y se descargan automáticamente
    • Se utilizó el micro framework pippo, que es un ruteador para endpoints, puede usarse para servicios REST y para servir páginas web; sólo utilicé servicios REST
    • Para la base de datos se usa SQLite, que por ser simple, sirve para esta actividad. Además que las consultas vienen incluidas en la misma aplicación web
    • Para la conexión a base de datos se usó JDBI, el cual permite crear ORMs con interfaces y anotaciones con consultas SQL; su uso es bastante parecido a retrofit.
  • El front end es una aplicación android, se utilizó lo siguiente
    • databinding
    • retrofit
    • gson
    • rxjava
  • Pudo haber quedado más sencillo, aún así quise dejar una base de datos un poco más sólida e íntegra (un par de catálogos en lugar de usar campos simples)

Requerimientos

  • La formula para calcular el interés no creo que sea exacta

Requerimientos no resueltos

  • omití la opción para seleccionar tarjeta de crédito

Instrucciones para compilar, ejecutar y desplegar

Toda la solución funciona en AndroidStudio 3.1.3

Para ejecutar la aplicación móvil

  • Seleccione la configuración de la aplicación movil ec-app y ejecute

Para ejecutar la aplicación web desde Android Studio

  • Buscar la clase org.shujito.ec.Application
  • Hacer click en la flecha para desplegar el menú, seleccionar Run 'Application.main()' (la aplicación fallará en este paso)

  • Se generará una configuración de aplicación
  • Edite las configuraciones

  • Seleccione la configuración que se agregó

  • Borre la instrucción Build

  • Agregue una nueva instrucción de gradle

  • Configure como en la imagen

  • Deberá quedar como en la imagen siguiente

  • Cambie también el directorio de trabajo a $MODULE_DIR$
  • Es opcional cambiar el nombre de la configuración

Desde la línea de comandos

Los siguientes comandos deben ser ejecutados en la carpeta del proyecto

Para ejecutar la aplicación web
./gradlew clean run
Para compilar el apk
./gradlew clean assembleDebug

se generará en ./ec-app/build/outputs/apk/debug/ec-app-debug.apk

Para compilar y ejecutar jar independiente
./gradlew clean jar
java -jar ec-web/build/libs/ec-web-0.1.jar

Instrucciones para ejecutar pruebas

Se ejecutan desde el IDE (Android Studio)

  • Buscar la clase org.shujito.ec.test.DatabaseTests
  • Hacer click en el círculo para ejecutar las pruebas

Problemas enfrentados
  • Configurar las pruebas unitarias tomó tiempo
  • Removí algunos formularios que hice en la aplicación móvil
  • Creo que debí haber comenzado por el backend, pudo haber quedado más simple la aplicación movil
Crítica hacia la activida

Las especificaciones que vienen en el documento aparentan ser abrumadoras pero en realidad el proyecto está simple de entender, el que se permita especificar asunciones y requerimientos no implementados aligeró un poco la carga mental al momento de la entrega

cc-easy-credit's People

Contributors

shujito avatar

Stargazers

Mario Enrique Flores Zuñiga avatar

Watchers

James Cloos 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.