Giter VIP home page Giter VIP logo

gestion-medicamentos-iv's Introduction

Proyecto-IV

Explicación del Proyecto

Vamos a hacer una base de datos de medicamentos para un hospital o similar, se podrá consultar datos de los propios medicamentos como por ejemplo el prospecto de un medicamento determinado, cantidad que queda de cada medicamento, estadísticas de consumo, ademas si es posible haremos un sistema que nos avise cuando no quedan existencias suficientes de un medicamento o si se aproxima mucho su fecha de caducidad.

Herramientas

  • Usaremos Ruby como lenguaje de programación.
  • Hemos usado contenedores Docker para ejecutar nuestra aplicación. Nuestro contenedor Docker lo alojamos en Docker Hub, un repositorio donde mantener imágenes de Docker. Docker Hub es open source bajo la licencia de Apache.
  • El despliegue en la nube se ha echo con Heroku, es gratuito y no nos pide tantos tramites para su uso.
  • Para la integración continua hemos usado Travis-CI, hemos elegido este sistema porque se activa automáticamente al hacer un push a nuestro repositorio git, además, es gratuito.
  • Como framework para servicios web hemos decidido usar sinatra, es open source, es flexible y rápido, además su uso es muy simple.
  • Tenemos RubyGems como sistema para gestionar bibliotecas.
  • Como editor de texto ya tenemos Atom.
  • La base de datos a usar será alguna de las siguientes: MySQL, MariaDB, PostgreSQL, Mongodb .

Desarrollo del proyecto:

Vamos a testear la clase "funciones" incluida en nuestro directorio "/src", la cual crea un nuevo objeto medicamento con los atributos que le corresponden (nombre, prospecto, fecha caducidad, id).

Lo primero que hacemos es añadir la integración continua con Travis-CI, Enlace a el badge de Travis : Build Status

Para instalar clonamos este repositorio

Para testear en local la clase poner en terminal la siguiente orden:

  • rake

El test nos avisará si algun atributo no es el esperado, asi como si un medicamento está caducado o tenemos menos de 5 unidades de ese medicamento. El test se ejecuta con un solo medicamento, habria que hacer un test para cada medicamento que queramos incluir en nuestra base de datos.

Despliegue en heroku Deploy

Necesitamos los archivos procfile y config.ru, estos ficheros contienen información de configuración y se localizan en el directorio raíz del proyecto.

Procfile es un archivo de texto simple que describe los componentes necesarios para ejecutar una aplicación. Es la forma de decirle a Heroku cómo ejecutar sus aplicaciones.

Para iniciar nuestra aplicación modular usaremos config.ru, el cual nos permite usar cualquier handler Rack, en nuestro caso Heroku.

Enlace a nuestra documentación del despliegue en Heroku

Para ejecutar en local:

Probar un fichero:
  * ruby myapp.rb

Probar aplicación desde directorio raiz:
  * rackup

Probar desde Heroku:
  * Heroku local web

Ejecutar en la web:

  * heroku open.

Podemos añadir diferentes rutas al deploy:

  /medicamento
  /listaMedicamentos
  /nombres

Nota: Si el enlace de Heroku sale Forbidden, recargar la pagina.

Docker y DockerHub

Despliegue en el contenedor Deploy

Enlace a la documentación Docker del Proyecto

Enlace a la documentación de DockerHub del Proyecto

Enlace a despliegue en Heroku de nuestro contenedor Docker, alojado en DockerHub

Enlace a DockerHub

Nota: hemos añadido log de acceso y error a nuestra aplicación, estas se van guardando en "/sinatra/log/error.log" y en "/sinatra/log/access.log"

Despliegue en la nube de Azure

Hemos utilizado Azure como LaaS, hemos hecho la orquestación de maquinas virtuales desde Vagrant y el aprovisionamiento del mismo con Ansible, el despliegue con Fabric.

Enlace a la documentación especifica de Vagrant

Enlace a la documentación del despliegue

Despliegue final: 13.94.145.191

URL Despliegue final: http://ivgestion.westeurope.cloudapp.azure.com/

gestion-medicamentos-iv's People

Contributors

mati3 avatar

Watchers

 avatar

gestion-medicamentos-iv's Issues

Modificaciones sugeridas al README

"Idioma de programación" no es apropiado, se trata más bien de lenguaje de programación. Haz una prueba, busca en google entrecomillado "idioma de programación" (62 resultados) y "lenguaje de programación" (>300.000 resultados).

Por otro lado, phpMyAdmin no es un motor de base de datos, es una herramienta de administración de servidores, que entre otros servicios permite administrar base de datos. Pero por si mismo, no es un motor de base de datos. Motores de base de datos son MySQL, MaríaDB, CouchDB, MongoDB, ...

Carpeta "test"

Es recomendable que los test estén en una carpeta "test" al igual que el código se encuentra en la carpeta src, para que así puedas automatizar aún más el proceso empleando rake, haciendo por ejemplo, que ejecute todos los ficheros con el "patrón" 'test/*_test.rb'.

Por lo demás, muy buen trabajo.

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.