Giter Club home page Giter Club logo

supernode's Introduction

Supernode - Documentación

Node template (Typescript, Express, Sequelize TS y modelo Repositorio)

npm version github release version license PRs welcome code with hearth by Supermavster

¡Ya no necesitas empezar tu proyecto Backend desde cero!

🚩 Tabla de contenido

Introducción

Esta es una útil, estructurada y compatible plantilla de Stack o Backend para NODE.

Hecho con las principales tecnologías como: Express, Sequelize, Jest y Node Server usando TypeScript.

Comenzando 🚀

Sigue los siguientes pasos para utilizar y construir tus proyectos con base en este stack:

Realiza fork de este repositorio en tú cuenta.

O bien, puedes clonarlo directamente:

$ git clone https://github.com/supermavster/supernode.git

Pre-requisitos 📋

Para poder utilizar este template, necesita tener instalado:

  • Terminal
  • NodeJS
  • YARN
  • Gestor de Base de datos
  • Docker (Opcional)

Notas:

Terminal Para la terminal perfectamente puedes usar la terminal de GIT o si quieres ser un poco más profesional usar Windows Subsystem for Linux (WSL)

NodeJS Instalalo y descargalo en su versión más estable en el siguiente link: NodeJS al instalar node trata de ejecutar Install Additional Tools for Node.js con el fin de poder tener todos los elementos necesarios para la ejecución de NodeJS.

Yarn Instalalo y descargalo en su versión más estable en el siguiente link: Yarn , con el fin de ejecutar comandos más rapidamente y un tanto más estructurado.

Gestor de Base de datos Por preferencia MySQL, o puedes escoger entre las siguientes: Postgres, MySQL, MariaDB, Sqlite3 y Microsoft SQL Server

Docker (Opcional) Creación del gestor de base de datos e inclusivde ejecución de Node.

Instalación 🔧

Para la configuración de la instalación del mismo, debemos configurar los environments e instalar dependencias, para que podamos ejecutar el stack.

Instalación de Dependencias

Ahora necesitamos instalar las dependencias del proyecto, utilizando alguno de los siguientes comandos:

$ npm install

or

$ yarn install

Configuración

Necesitas añadir las variables de entorno, las cuales nos permitiran conectarnos a las bases de datos ofrecidas por Sequelize, al igual toda credencial que tengamos.

Para esto un ejemplo de un archivo env en la carpeta environment; más especifico environment/.env.example

$ cd environment
$ cp .env.example .env.local && cp .env.example .env.development && cp .env.example .env.production

Un ejemplo base del archivo .env.development seria:

##################
# Env File
##################

ENV=development
VERSION=1
PROJECT=supernode
SHORT_NAME=sn
LANGUAGE=es

#HOST DATA:
HOST=localhost
PORT=5000

## DATABASE DATA
# DEV
DEV_DB_USERNAME=root
DEV_DB_PASSWORD=secret
DEV_DB_NAME=test
DEV_DB_HOSTNAME=127.0.0.1
DEV_DB_SYSTEM=mysql
DEV_DB_PORT=33060

GMAIL_SERVICE_NAME=gmail
GMAIL_SERVICE_HOST='smtp.gmail.com'
GMAIL_SERVICE_SECURE=true
GMAIL_SERVICE_PORT=465
[email protected]
GMAIL_USER_PASSWORD=secret

Ejecutar el APP

Warning! Debe de ejecutarse la base de datos antes de proseguir

Si utilizas docker te recomiendo que montes y ejecutes un volumen con mysql, más información: Docker + MySQL (Tutorial), despues de crear el volumen ejecutar el id o nombre del contenedor: docker start be04f0c06...


Ejemplos de uso:

Un ejemplo ejecutado con las credenciales en local, seria:

$ npm run dev:local

o

$ yarn dev:local

Dando como respuesta de servidor: http://localhost:5000/


Development

Un ejemplo ejecutado con las credenciales en development, seria:

$ npm run dev:development

o

$ yarn dev:development

O de manera corta, con la ejecución de Nodemon:

$ npm run dev

o

$ yarn dev

Nota: Configurar el archivo .env.development para la ejecución de este comando.


Un ejemplo ejecutado con las credenciales en production, seria:

$ npm run dev:production

o

$ yarn dev:production

La plantilla admite cuatro entornos, puede modificarlos desde pakcage.json > scripts npm install.

Por ejemplo, ejecute la plantilla npm run serve:local, para ejecutar la aplicación utilizando el modo de entorno local.


Para los servicios dirigete a la carpeta endpoints e importa dicho JSON en INSOMNIA

Wiki 📖

Puedes encontrar mucho más de cómo utilizar este proyecto en nuestra Wiki

Características 🎨

  • Ejemplo completo de llamada API (para que pueda rastrearlo y saber cómo funciona el ciclo de vida de la llamada API).
  • Uso de Typescript.
  • Configurar entorno de prueba utilizando pruebas Jest con informes de cobertura. (In Progress)
  • Estructura: Controlador, Servicio, Repositorio y Modelo.
  • Validación de modelos de bases de datos.
  • Eslint linting, Pettrier y Babel.
  • Corrección automática para errores de linting antes de confirmar cambios.
  • Soporte de múltiples entornos.
  • Soporte de múlti lenguaje.
  • Un lugar para manejar errores.
  • Manejo de errores usando el módulo Hapi / Boom (errores consistentes y estructurados).
  • Manejo de Interfaces
  • Creación de Migraciones Estructuradas.
  • Creación de Seeders Estructurados.
  • Ejemplos: CRUD y CRUD con archivos.
  • Incorporación completa.
  • Envío de correos electrónicos personalizados.
  • Compilación con Babel en TS y configuración de la misma.
  • Verificación y limpieza del código con ESLint y Pettrier usando TS.
  • Generación automática de documentación en el Swagger
  • Configuración del insomnio y servicios de pila
  • Recopilación y ejecución
  • Despliegue y configuración - BitButcket
  • Y mucho más...

Nota: Se puede extender a más idiomas y escalar.

Despliegue 📦

PENDING

Construido con 🛠️

Este proyecto fue creado usando las siguientes tecnologias:

  • NodeJS
  • Yarn
  • Express
  • Typescript
  • Sequelize (and Sequelize TypeScript)
  • Hapi/Boom
  • Husky
  • ESLint
  • Prettier
  • Nodemon or PM2
  • HTTP Status Code
  • Swagger
  • Jest (in progress)

Versionado 📌

Usamos SemVer para el versionado. Para todas las versiones disponibles, mira los tags en este repositorio.

Contribución ✒️

Puedes mirar la lista de todos los contribuyentes quíenes han participado en este proyecto.

Licencia 📜

Este proyecto está bajo la Licencia (MIT) - mira el archivo LICENSE.md para detalles. Supernode - ©Supermavster.

Expresiones de Gratitud 🎁

  • Comenta a otros sobre este proyecto 📢
  • Invita una cerveza 🍺 o un café ☕ a alguien del equipo.
  • Da las gracias públicamente 🤓.
  • etc.

Developers 🚀


Miguel Ángel

⌨️ con ❤️ por Supermavster 😊

supernode's People

Contributors

supermavster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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