Coder Social home page Coder Social logo

supermavster / supernode Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 3.0 615 KB

Useful, structured and compatible stack or backend template for NODE made with TypeScript, Express, Sequelize (TS), Node server using Patron Repository and much more.

License: MIT License

Dockerfile 0.62% HTML 11.46% TypeScript 71.70% JavaScript 15.96% Shell 0.26%
typescript orm sequilize nodejs express prettier eslint nodemon pm2 babel yarn

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.