srmarin / ProyectoIV

Project for the Course on Virtual Infraestructure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Proyecto IV - gAcademy

gAcademy es un proyecto en el marco de la asignatura Infraestructuras Virtuales de la UGR. gAcademy nace para ser una herramienta basada en microservicios para ser utilizada en proyectos de gestión de alumnos y profesores en el ámbito académico.
La idea principal es cambiar (y facilitar) la gestión de una academia donde hasta dar de alta un alumno puede ser una tarea tediosa. Los microservicios que incluirá este proyecto serán, entre otros, la creación de nuevos alumnos y profesores, asignación de grupos tanto a alumnos como a profesores y la gestión de horarios de aulas y grupos.


Servicios

Lenguaje Infraestructura IC IaaS
Nodejs Express.js Heroku Travis Digital Ocean

En el desarrollo de gAcademy emplearé Nodejs como lenguaje principal para el servidor ya que permite llamadas asíncronas y parte de la idea de hacer aplicaciones escalables. Para la realización de la API emplearé Expressjs, framework de Nodejs que facilita mucho la tarea para las operaciones CRUD (Create Read Update Delete). Pero todo este desarrollo no puede ir solo, necesita de unos test que permitan automatizar si los cambios realizados son correctos. Travis es una herramienta muy popular entre los desarrollados para la integración continua ya que se configura directamente con GitHub resultando mucho más cómodo.


Rutas API REST

LLamadas GET:

  • / -> Devuelve status ok
  • /status -> Al igual que /
  • /student/all -> Devuelve JSON con todos los datos de los estudiantes
  • /teacher/all -> Devuelve JSON con todos los datos de los profesores
  • /subject/<nombre> -> Devuelve JSON con información del a asignatura

LLamadas POST:

  • /student/ -> Registrar nuevo alumno. Los parámetros son nombre, edad y una lista de asignaturas separadas por comas
  • /teacher/ -> Registrar nuevo profesor. Los parámetros son nombre y asignatura

LLamadas PATCH:

  • /student/<id> -> Actualizar información de un alumno como la edad o las asignaturas

LLamadas DELETE:

  • /class/<alumno>/<asignatura> -> Elimina a un alumno de una asignatura

Despliegue

Despliegue en https://gacademy.herokuapp.com/

El despliegue de la aplicación se ha realizado en Heroku. El uso de Heroku es debido a que se puede comenzar con una cuenta gratuita y en caso de querer ampliar las prestaciones del servidor se puede contratar según las necesidades de la aplicación(dynos). Además Heroku proporciona un toolbet muy bien adaptado para trabajar con aplicaciones NodeJs.


Despliegue mediante contenedor

Documentación de Docker y DockerHub

Contenedor: https://docker-gacademy.herokuapp.com

Enlace a DockerHub

Despliegue final: 174.138.2.199

Documentación del proyecto

Online Docs

Copyright (c) 2018 Sergio Rodríguez Marín

About

Project for the Course on Virtual Infraestructure

License:MIT License


Languages

Language:JavaScript 97.0%Language:Dockerfile 3.0%