Giter Site home page Giter Site logo

backend_abrhil_test's Introduction

backend_abrhil_test

Repositorio Aplicación para el control de contactos

API de contactos basada en Node.js, requiere de un token de autorización para poder realizar peticiones.

Paths

  • GET /api/contactos: Obtiene la lista de contactos registrados.
  • GET /api/contactos/[uuid]: Obtiene un contacto basado por UUID.
  • POST /api/contactos/: Agrega un nuevo contacto, la petición recibe los datos del nuevo contacto mediante el body.
  • PUT /api/contactos/[uuid]: Actualiza la información de un contacto registrado obtenido por UUID, la petición recibe los datos nuevos del contacto mediante el body.
  • DELETE /api/contactos/[uuid]: Elimina un contacto basado por UUID.
  • POST /autenticar/: Recibe usuario y contraseña para generar un token de acceso que ayude a realizar las peticiones.

Docker

Se cuenta con 2 servicios: backend y db. Al ejecutar le programa se habilita una red virtual interna de Docker que ejecuta cada uno de los servicios:

  • Backend contenedor diseñado para servicios en Node.JS, se ejecuta en la espera de peticiones en el puerto :8000 del host.
  • Db contenedor diseñado para la ejecución del motor de base de datos PostgreSQL.

Goals

  1. Se crea repositorio de backend, contiene servicio de Node y Base de datos en Postgres.
  2. Contiene 2 manereas de generar la Base de datos Contactos: por medio de script CreateDB.sql, o por medio de ORM de Node.
  3. Se crea CRUD de contactos con Express, Sequelize y Node, se crea middleware de autenticación por token.
  4. Se crean 2 entornos: Desarrollo y Producción.
  5. Se crean las pruebas unitarias por cada endpoint.
  6. Se genera integración continua por medio de Github Actions.

Paso de ejecución

Es necesario contar con Docker instalado.

  1. Descargar el proyecto.
  2. Abrir una terminal en la carpeta raiz.
  3. Ejecutar el comando
docker-compose up --build -d
  1. Al terminar la construccióon se pueden ejecutar las pruebas por medio del siguiente comando
docker-compose exec backend npm test
  1. El servicio de node se ejecuta en la dirección: http://0.0.0.0:8000/api
  2. Para detener el servicio se ejecuta el siguiente comando
docker-compose down 

CI

El repositorio cuenta con Actions que permiten realizar pruebas de integración para el entorno productivo cada vez que se realiza un push a la rama Develop y un pull-request a Main.

Documentación de API

Se utiliza la herramienta Apiary para describir cada endpoint desarrollada.

backend_abrhil_test's People

Contributors

charliesd avatar

Watchers

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