Loading repository data…
Loading repository data…
KristhDev / repository
ReactTasks es una pequeña aplicación para la gestión de tareas de usuarios. Ellos se registran y ya pueden empezar a crear tareas sobre sus actividades del día a día. Aquí se encuentra la API con todas las funcionalidades del servidor para que la aplicación funcione correctamente.
Este es la api para el proyecto ReactTasks, una aplicación web para gestionar tareas. Este documento contiene explicaciones sobre las tecnologías utilizadas, el entorno de desarrollo, base de datos, cómo ejecutar el servidor y test de la aplicación.
Es un popular framework de aplicaciones web para Node.js, que se utiliza para crear aplicaciones web y servicios web basados en el protocolo HTTP. Express es una capa delgada sobre Node.js y proporciona una amplia gama de características para la creación rápida y fácil de aplicaciones web robustas.
Es un lenguaje de programación libre y de código abierto desarrollado y mantenido por Microsoft. Es un superconjunto de JavaScript, que esencialmente añade tipos estáticos y objetos basados en clases. Extiende la sintaxis de JavaScript, por tanto, cualquier código JavaScript existente debería funcionar sin problemas.
Soporta ficheros de definición que contengan información sobre los tipos de librerías JavaScript existentes, similares a los ficheros de cabeceras de C/C++ que describen la estructura de ficheros de objetos existentes. Esto permite a otros programas usar los valores definidos en los ficheros como si fueran entidades TypeScript de tipado estático.
MongoDB es un sistema de base de datos NoSQL, lo que significa que no utiliza el modelo relacional tradicional de las bases de datos SQL. En su lugar, MongoDB utiliza un formato de almacenamiento de documentos JSON con esquemas dinámicos, lo que permite una mayor flexibilidad y escalabilidad en la estructura de los datos.
MongoDB es conocido por su capacidad de manejar grandes volúmenes de datos y su capacidad de escalar horizontalmente a través de la distribución en clústeres. Además, ofrece un lenguaje de consulta poderoso y flexible que permite realizar consultas complejas y análisis en los datos almacenados.
Mongoose es una herramienta de modelado de datos para MongoDB en Node.js. Proporciona una solución sencilla y basada en esquemas para modelar la aplicación de datos de MongoDB. Mongoose se utiliza comúnmente en aplicaciones Node.js que interactúan con bases de datos MongoDB.
Al utilizar Mongoose, los desarrolladores pueden definir modelos de datos con esquemas que representan la estructura de los documentos en la base de datos MongoDB. Esto proporciona una capa de abstracción sobre la base de datos, lo que facilita la validación de datos, la definición de relaciones y la manipulación de datos.
JWT (JSON Web Token) es un estándar qué está dentro del documento RFC 7519.
En el mismo se define un mecanismo para poder propagar entre dos partes, y de forma segura, la identidad de un determinado usuario, además con una serie de claims o privilegios.
Estos privilegios están codificados en objetos de tipo JSON, que se incrustan dentro de del payload o cuerpo de un mensaje que va firmado digitalmente.
BetterStack es una plataforma de desarrollo de software que ofrece herramientas y servicios para ayudar a los equipos de ingeniería y desarrollo a crear, implementar y administrar aplicaciones web de manera eficiente. Se centra en ofrecer una serie de servicios y productos que cubren diversas áreas del desarrollo de software.
Uno de ellos es BetterStack Logtail, un servicio de recopilación y análisis de registros (logs) que ayuda a los equipos a rastrear y diagnosticar problemas en las aplicaciones. Los usuarios pueden enviar de forma sencilla los registros generados por sus aplicaciones y sistemas a diferentes destinos de almacenamiento y análisis.
Una plataforma de código abierto que permite la creación, el despliegue y la ejecución de aplicaciones en contenedores. Un contenedor es una unidad de software ligera y portátil que encapsula una aplicación y todas sus dependencias, incluidas bibliotecas, marcos de trabajo y archivos de configuración necesarios para que la aplicación se ejecute de manera eficiente y confiable en diferentes entornos.
Docker facilita la creación y el despliegue de aplicaciones al proporcionar una forma consistente de empaquetar, distribuir y ejecutar software. Además, permite la gestión eficiente de recursos, ya que los contenedores son livianos y comparten el núcleo del sistema operativo, lo que los hace rápidos de crear y lanzar. Docker también ofrece herramientas para administrar y orquestar múltiples contenedores, como Docker Compose y Kubernetes, que simplifican la gestión de aplicaciones distribuidas y escalables.
Es la herramienta de Test más popular y recomendada para React. Es creado por Facebook. Jest no es solo una biblioteca, es un marco de prueba. Significa que viene con una biblioteca de afirmaciones, un corredor de pruebas y soporte para cosas. Como ha sido diseñado específicamente para probar las aplicaciones React, también se puede utilizar en otros marcos de JavaScript.
Supertest es una biblioteca de Node.js que permite realizar pruebas de integración para aplicaciones web. Es una extensión
de la biblioteca de aserciones de pruebas de Node.js, llamada assert, que proporciona una interfaz para enviar solicitudes
HTTP a una aplicación web y comprobar la respuesta.
Funciona de manera similar a un cliente HTTP, pero está diseñada específicamente para pruebas de integración. Permite enviar solicitudes HTTP a una aplicación web y comprobar la respuesta de la aplicación.
El entorno se compone de lass herramientas que son necesarios para ejecutar la aplicación y realizar interacciones con ella, por ejemplo, enviar solicitudes HTTP, crear base de datos, etc. Esas herramientas son:
Es un entorno en tiempo de ejecución multiplataforma para la capa del servidor (en el lado del servidor) basado en JavaScript. Controlado por eventos, diseñado para crear aplicaciones escalables, permitiéndote establecer y gestionar múltiples conexiones al mismo tiempo. Gracias a esta característica, no tienes que preocuparte con el bloqueo de procesos, pues no hay bloqueos.
Node.js está basado en el motor V8 de Google, uno de los intérpretes de lenguaje de programación que existen. Este motor se encarga de compilar el código de JavaScript en código de máquina, un código de nivel más bajo que no hace falta que sea interpretado por el navegador.
Es un gestor de paquetes de JavaScript para aplicaciones web y Node.js. Es una alternativa a npm y yarn, dos de los gestores de paquetes más populares de la industria.
Pnpm se destaca por su enfoque en el rendimiento y la eficiencia. En lugar de descargar cada paquete en el directorio de node_modules de cada proyecto, pnpm utiliza un único almacén central para todos los paquetes instalados en un sistema, lo que significa que los paquetes se descargan una sola vez y se comparten entre los diferentes proyectos. Esto reduce el tamaño de los proyectos y acelera el proceso de instalación de paquetes.
Docker Desktop es una aplicación que proporciona una experiencia de usuario completa de Docker en sistemas operativos de escritorio, como Windows y macOS. Es una herramienta que facilita la instalación y el uso de Docker en entornos de desarrollo local. Obtienes un entorno de desarrollo aislado donde puedes crear y ejecutar contenedores en tu sistema operativo sin interferir con otros programas o configuraciones. Proporciona una forma rápida y consistente de configurar un entorno de desarrollo para proyectos que utilizan contenedores.
<a name="development-environment-mo