Información adicional del proyecto
Table of Contents generated with DocToc
- ¿De dónde surge la idea?
- ¿Cuál es la idea general del funcionamiento?
- Implementación
- Tecnologías a utilizar
¿De dónde surge la idea?
La idea surge de que muchas personas necesitan un sistema rápido y sencillo de utilizar para gestionar el vocabulario de una lengua. También, muchas de ellas creen que es conveniente y práctico tener un sistema de gestión al que puedan acceder en cualquier momento.
¿Cuál es la idea general del funcionamiento?
La idea principal es, como se ha comentado anteriormente, facilitar la gestión de vocabulario. Para ello, se pretende que se pueda almacenar en un sistema de almacenamiento las palabras o expresiones que se quieran aprender, asignándoles una categoría (sustantivo, adjetivo, verbo, etc.), y permitiendo insertar junto a ellas una serie de definiciones o traducciones, las cuáles serán descripciones de la palabra.
Posteriormente, se podrán modificar estas descripciones, añadiendo o quitando definiciones o traducciones, y se permitirá consultar palabras concretas para obtener las descripciones, o bien todas las palabras de una categoría, si quiere dedicar un tiempo a aprender, por ejemplo, los verbos que tiene guardados.
También se podrán eliminar las palabras cuando se crea conveniento, como por ejemplo sería el caso de que ya han sido aprendidas.
Implementación
Se va a implementar el sistema en Node.js. Se usará una base de datos no relacional para almacenar las palabras, ya que no es información que por sí misma se pueda considerar estructurada. Se utilizará alguna como por ejemplo MongoDB.
Al ser un microservicio, se tiene en mente que toda la comunicación se pueda hacer mediante una arquitectura REST, lo cuál implicará utilizar las cabeceras y peticiones típicas de HTTP para comunicarse con el sistema.
Tecnologías a utilizar
En este proyecto se van a utilizar las siguientes tecnologías, tanto para su desarrollo como para su posterior despliegue:
- Node.js: Como se ha dicho antes, se desarrollará el servicio en este lenguaje. Se usará además el gestor de paquetes que viene incluído con él, npm.
- Express: Es el framework para desarrollar aplicaciones web que se va a utilizar, debido a que permite desarrollar aplicaciones de forma sencilla y rápida. Además de eso, es open source y dispone de una amplia documentación.
- Jest: Es el framework de tests que se usará para hacer unit testing a las funcionalidades que se irán incluyendo en el microservicio. Se ha elegido porque es open source y hay mucha documentación disponible.
- MongoDB: Será la base de datos a utilizar. Se ha elegido porque es no relacional, basada en documentos, open source y tiene una amplia documentación, además de que se puede usar con una gran variedad de lenguajes.
- Para gestionar los logs, se utilizará Logstash combinado con Winston. De ser necesario, se añadirán más sistemas para gestionar logs más adelante, y se indicará aquí.
- JSDoc: Para generar la documentación se utiliza esta API, la cuál es fácil de instalar y utilizar, además de que es open source.
- Para la integración contínua se utilizarán dos sistemas: Travis CI y Circle CI. Aquí se pueden ver los motivos por los que se han elegido.
- Docker: Se utilizará para crear containers, en los cuáles se ejecutará la aplicación.
- Para el despliegue en la nube, se usarán Heroku e, idealmente, Azure.