Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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


page1

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.

## Entre em contato:

E-mail

isaque oliveira
WhatsApp