Giter Club home page Giter Club logo

apalabrados's Introduction

Apalabrados

Primer reto técnico platzi master, Es una aplicacion en Flask que evalua un input Para este reto se debe crear una DB con las siguientes tablas:

  • numeros. Columnas: número, acumulado
  • texto. Columnas: texto, inicial, final
  • caracteres: Columnas: caracter

Despues de tener la BD se creara una aplicacion que analice un input y de acuerdo al tipo de datos haga lo siguiente:

  • Si es un número, lo guarda en la tabla numeros. En la columna número guardará el input y acumulará el valor con los valores anteriores de la misma tabla, este se almacenará en acumulado.
  • Si es un texto, debe almacenar en la tabla texto. Guarda el input en la columna texto, el caracter inicial se guarda en la columna inicial y el caracter final se guarda en la columna final.
  • Si el input tiene algún caracter especial como tilde, coma, punto y coma, punto, numeral o parecidos, debe extraerlo del input y enviar el caracter a la tabla caracteres, columna caracter. El resto del input se descarta.

Solución

para la solución a este reto, se creo una bd respetando la estructura planteada anteriormente, el archivo database_apalabrados.sql contiene el codigo usado para el desarrollo de esta bd en MSSQLS SERVER. Una vez que la base de datos fue correctamente creada se creo un login y un usuario con permisos de insecion y consulta

Para el desarrollo de la aplicacion el primer punto trabajado fue la conexion a la base de datos que se puede ver en el archivo db_connection.py que hace uso de pyodbc para obtener una conexion con el usurio, para el funcionamiento de esta conexion es necesarion archivo ".env" con la variables de conexion a la bd la estructura de dicho puto en se puede revisar en .env.example

En cuanto a la logica que evalua el input dado por el usuario se encuentra en apalabrados.py basicamente aqui se evalua y hacen los llamdos a la bd las reglas queevaluan el input son las siguentes.

  • Se intenta convertir el input en un numero, si no hay erros entonces se convierte en numero, y si hay un error es un texto
  • Cuando se sabe que es un texto se hace un desglose caracter por caracter convirtiendolo a ascii y comparando con los rangos donde hay un carcater especial
  • dependiendo de lo que pase en cada evaluacion sellama a una funcion que inserta lo que se especifica en el enunciado del reto

Por ultimo para la parte de la app se creo una aplicacion web en flask la cual se ejcuta mediante el archivo run.py el cual habilita un servidor que muestra la appp y manda el inputa a apalabrados.py, tambien muestra lo que cada tabla tiene

** Aclaraciones importantes **

Para el correcto funcionamiento de la app se deben instalar las librerias especificadas en requirements.txt El motor de base de Datos usado fue MSSQLSERVER EXPRESS 2019 Se debe configurar un usuario y login con los permisos de insercion, consulta y conexion a la db

Uso

Para el uso de la app es necesario

  • Instalar las librerias especificadas en requirements.txt
  • Instalar MSSQLSERVER EXPRESS 2019
  • Configurar un usuario y login con permisos de insercion, consulta y conexion a la db
  • ejecutar el archivo run.py
    • una vez ejecutado se iniciara un servidor en 127.0.0.1:5000
    • la app se encentra en la ruta 127.0.0.1:5000/apalabrados
    • para hacer uso de la app se debe ingresar algo en el input que aparecera, y presionar el boton enviar para que se evalue el input

Descargar el repositorio

Para descargar el repositorio se puede hacer lo siguiente:

Diagrama de flujo del reto

Apalabrados-FLOWCHART.jpg

apalabrados's People

Contributors

mauriciofbl 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.