A Medieval Store API é um projeto desenvolvido em TypeScript que tem como objetivo criar uma loja de itens medievais no formato de uma API. A aplicação utiliza o banco de dados MySQL e implementa as operações básicas de um banco de dados (CRUD - Create, Read, Update e Delete).
O projeto possui as seguintes funcionalidades:
- Camadas da aplicação: Foram desenvolvidas as camadas Models, Service e Controllers para organizar e separar as responsabilidades da aplicação.
- Endpoints: Foram criados vários endpoints que permitem a leitura e escrita de dados no banco de dados, seguindo as operações CRUD.
- Banco de dados MySQL: A aplicação utiliza o MySQL para armazenar os dados dos itens medievais.
O projeto possui as seguintes dependências:
"dependencies": {
"dotenv": "10.0.0",
"express": "4.17.1",
"express-async-errors": "3.1.1",
"joi": "17.6.0",
"jsonwebtoken": "8.5.1",
"mysql2": "2.3.0"
}
O projeto possui as seguintes dependências de desenvolvimento:
"devDependencies": {
"@types/express": "4.17.13",
"@types/jest": "27.0.2",
"@types/jsonwebtoken": "8.5.8",
"@types/node": "16.11.31",
"@types/supertest": "2.0.11",
"@typescript-eslint/eslint-plugin": "5.3.1",
"@typescript-eslint/parser": "5.3.1",
"eslint": "7.32.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-config-airbnb-typescript": "15.0.0",
"eslint-plugin-editorconfig": "3.2.0",
"eslint-plugin-import": "2.25.3",
"eslint-plugin-mocha": "9.0.0",
"eslint-plugin-sonarjs": "0.10.0",
"jest": "27.3.1",
"nodemon": "2.0.14",
"supertest": "6.1.6",
"ts-jest": "27.0.7",
"ts-node-dev": "1.1.8",
"typescript": "4.4.3"
}
O projeto possui os seguintes scripts:
start
: Inicia a aplicação.dev
: Inicia a aplicação em modo de desenvolvimento com o Nodemon.test
: Executa os testes utilizando o Jest.posttest
: Executa um script para recriar o banco de dados após os testes.restore
: Executa um script para recriar o banco de dados.
"scripts": {
"start": "ts-node src/index.ts",
"dev": "nodemon --watch \"./src/**\" --ext \"ts,js\" --ignore \"src/**/*.spec.ts,src/**/*.json\" --exec \"ts-node src/index.ts\"",
"test": "jest",
"posttest": "ts-node tests/recreateDatabase.ts",
"restore": "ts-node tests/recreateDatabase.ts",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx"
}