Skip to content

guilhermercarvalho/ufms-tdsoft-restful-students

Repository files navigation


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

About

RESTful API to fetch student data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages