Giter VIP home page Giter VIP logo

claudionorojr / studentbus-server Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 732 KB

Back-end do sistema para cadastro dos estudantes da cidade de Grossos/RN que utilizam dos ônibus fornecidos pela prefeitura para se deslocarem até as instituições de ensino da cidade vizinha, Mossoró/RN.

TypeScript 100.00%
clean-architecture commitizen ddd eslint fastify github-actions node semantic-release solid typescript

studentbus-server's Introduction

Student Bus

⚙️ Dependências

bcryptjs
$ npm i bcryptjs

# Instalação das tipagens
$ npm i @types/bcryptjs -D

Commitizen
$ npm i commitizen -D

# Configuração do Commitizen
$ npx commitizen init cz-conventional-changelog --save-dev --save-exact

Atualizar .git/hooks/prepare-commit-msg com o código:

#!/bin/bash
exec < /dev/tty && node_modules/.bin/cz --hook || true

Dotenv
$ npm i dotenv

ESLint
$ npm i eslint -D

# Instalando o plugin ESLint da Rocketseat para formatação do código
$ npm i @rocketseat/eslint-config

# Configuração do ESlint (opcional)
$ npx eslint --init

Adicionar ao .eslintrc.json:

{
  "extends": "@rocketseat/eslint-config/node",
  "rules": {
    "camelcase": "off",
    "no-useless-constructor": "off"
  }
}

Alterar o arquivo node.js nas dependências do plugin em node_modules para aceitar ponto e vírgula ao final das linhas.


Faker-js
# Lib para gerar dados fictícios
$ npm i @faker-js/faker -D

Fastify
$ npm i fastify

# Lib integrada ao fastify para a criação de Json Web Tokens
$ npm i @fastify/jwt

Semantic-release
$ npm i semantic-release -D

# Plugins adicionais
$ npm i @semantic-release/git @semantic-release/changelog -D

Arquivo de configuração do semantic-release, ``.releaserc.json`:

{
  "branches": ["main", { "name": "alpha", "prerelease": true }],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/github",
    "@semantic-release/changelog",
    [
      "@semantic-release/git",
      {
        "assets": ["package.json", "package-lock.json", "CHANGELOG.md"],
        "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
      }
    ]
  ]
}

TypeScript
# Instalação do TypeScript e das tipagens para node
$ npm i typescript @types/node -D

# Inicializando o TypeScript
$ npx tsc --init

# Permite que o node execute código TypeScript
$ npm i tsx -D

# Realiza a conversão do código de TypeScrip para JavaScript (build)
$ npm i tsup -D

Vitest
$ npm i vitest -D

# Plugin para que o vitest consiga entender os paths configurados no tsconfig
$ npm i vite-tsconfig-paths -D

# Interface para visualizar e executar os testes
$ npm i @vitest/ui -D

Criar arquivo de configuração do Vitest (vite.config.ts):

Adicionando o plugin nas configurações do Vitest

import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';

export default defineConfig({
  plugins: [tsconfigPaths()],
});

Adicionar os scripts de testes ao package.json:

"scripts": {
  ...
  "test": "vitest run",
  "test:watch": "vitest",
  "test:coverage": "vitest run --coverage",
  "test:ui": "vitest --ui"
},

studentbus-server's People

Contributors

claudionorojr avatar semantic-release-bot avatar

Watchers

 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.