Skip to content

Latest commit

 

History

History
127 lines (83 loc) · 3.37 KB

README.md

File metadata and controls

127 lines (83 loc) · 3.37 KB

Logo

Universidade Federal de Mato Grosso do Sul

Técnicas Avançadas de Desenvolvimento de Software

Hudson Silva Borges

API RESTful para consultar dados de alunos

Sobre

Nesta atividade o objetivo é colocar em prática os conhecimentos relacionados às definições de serviços web e suas aplicações.

Portanto, é proposto um problema com escopo bastante restrito: gestão de alunos de uma disciplina.

Uma pequena aplicação que fará a gestão do registro de alunos de uma disciplina. Essa aplicação deverá permitir a inserção, alteração e consulta de alunos. Detalhes de cada uma das funcionalidades que deverão ser implementadas.

Foram utilizadas práticas de Clean Code e Clean Architecture para o desenvolvimento dessa aplicação.

Tecnologia

Linguagens e Frameworks

  • Node
  • TypeScript
  • TypeORM
  • Express

Banco de Dados

SQL

  • MySQL
  • Postgres
  • SQLite

NoSQL

  • Redis

Ferramentas Utilizadas

  • Visual Studio Code (VSCode).
  • Docker

Começando

Recomenda-se o uso da extensão Remote Development Container para execução adequada do ambiente de desenvolvimento. Este foi criado utilizando containers com variáveis de ambiente pré-configuradas possibilitando a execução de toda a aplicação. Os containers são:

  • restfull-students-app: container da aplicação
  • restfull-students-db-mysql: : container do banco de dados MySQL
  • restfull-students-db-postgres: container do banco de dados PostgreSQL
  • restfull-students-cache-redis: : container de cache Redis

Pré-requisitos

Para executar corretamente o projeto é necessário ter NodeJS, NPM, Docker e VSCode instalados.

Uso

Instalação

npm install

Inciar Aplicação em Desenvolvimento

npm run dev

Inciar Suíte de Testes da Aplicação

npm run test

Definir Banco de Dados

A variável de ambiente CURRENT_DATABASE define o banco de dados a ser utilizado pela aplicação (por padrão é SQLite em memória). Os valores possíveis são:

  • mysql

  • postgres

  • sqlite (:memory: é o padrão)

    # PostgreSQL database
    POSTGRES_HOST=
    POSTGRES_PORT=
    POSTGRES_USER=
    POSTGRES_PASSWORD=
    POSTGRES_DATABASE=
    
    # MySQL database
    MYSQL_HOST=
    MYSQL_PORT=
    MYSQL_USER=
    MYSQL_PASSWORD=
    MYSQL_DATABASE=
    
    # SQLite database filename
    SQLITE_DATABASE=
    
    # Choose the database of application (mysql, postgres, sqlite)
    CURRENT_DATABASE=

Licensa

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

Contato

Guilherme Carvalho - Linkedin - dev.carvalho@protonmail.com