Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isaque-s-0liveira/trybesmith-be
TrybeSmith consiste no desenvolvimento de uma API para gerenciar uma loja de itens medievais, utilizando TypeScript e o ORM Sequelize.
https://github.com/isaque-s-0liveira/trybesmith-be
chai express jwt-jsonwebtoken mocha mysql sequelize sinon typescript
Last synced: 3 months ago
JSON representation
TrybeSmith consiste no desenvolvimento de uma API para gerenciar uma loja de itens medievais, utilizando TypeScript e o ORM Sequelize.
- Host: GitHub
- URL: https://github.com/isaque-s-0liveira/trybesmith-be
- Owner: isaque-S-0liveira
- Created: 2023-12-06T22:55:35.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-08T22:23:52.000Z (5 months ago)
- Last Synced: 2024-10-14T01:41:19.097Z (3 months ago)
- Topics: chai, express, jwt-jsonwebtoken, mocha, mysql, sequelize, sinon, typescript
- Language: TypeScript
- Homepage:
- Size: 501 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TrybeSmith
## Contexto
O foco principal deste projeto é, com base nos ensinamentos da **Trybe**, desenvolver uma API para gerenciar uma loja de itens medievais, utilizando **TypeScript** e o ORM **Sequelize**. A aplicação foi construída com foco em operações de **CRUD** (Create, Read, Update, Delete) para produtos e pedidos, seguindo a arquitetura **MSC (Model-Service-Controller)**.
O que é a Trybe?🤔
A Trybe é uma escola de desenvolvimento web genuinamente comprometida com o sucesso profissional de seus estudantes. Com o Modelo de Sucesso Compartilhado (MSC) oferecido pela Trybe Fintech, uma instituição financeira autorizada pelo Banco Central do Brasil, os alunos têm a opção de pagar apenas quando estiverem trabalhando.🎲 Diagrama Entidade Relacionamento
Algumas rotas da API requerem autenticação via **JWT (JSON Web Token)** para garantir a segurança e controle de acesso. Além disso, foram implementados testes automatizados para cobrir as funcionalidades das camadas **Service** e **Controller**, garantindo um alto nível de qualidade no código e corretude das operações.
A API permite o cadastro de produtos, listagem de pedidos, login de usuários, e todas as operações são integradas ao banco de dados por meio do Sequelize, que facilita a comunicação com o **MySQL**. A lógica do sistema também garante que cada produto tenha um pedido único, reforçando o conceito de itens exclusivos e artesanais.
### Funcionalidades Principais:
- Cadastro de novos produtos no banco de dados.
- Listagem de todos os produtos cadastrados.
- Listagem de pedidos, incluindo os produtos associados a cada pedido.
- Autenticação de usuários com **JWT** e validação de credenciais no banco de dados.---
## Tecnologias Usadas
- [Node.js](https://nodejs.org/) - Plataforma para execução do JavaScript no servidor.
- [TypeScript](https://www.typescriptlang.org/) - Superset do JavaScript que adiciona tipagem estática ao código.
- [Express](https://expressjs.com/) - Framework para construir APIs com Node.js.
- [Sequelize](https://sequelize.org/) - ORM para interagir com o banco de dados MySQL de forma fácil e eficiente.
- [MySQL](https://www.mysql.com/) - Banco de dados relacional utilizado para armazenar informações de produtos e pedidos.
- [JWT (JSON Web Token)](https://jwt.io/) - Ferramenta para geração de tokens de autenticação.
- [Mocha](https://mochajs.org/) - Framework de testes para JavaScript.
- [Chai](https://www.chaijs.com/) - Biblioteca de asserções para testes, utilizada em conjunto com o Mocha.
- [Sinon](https://sinonjs.org/) - Ferramenta para criação de mocks, stubs e spies em testes.