Pizza Shop É uma aplicação de gestão de pedidos de restaurantes feito no Ignite da Rocketseat. Nessa aplicação o intuito foi fazer tanto o backend e o frontend, ou seja, é uma aplicação full-stack, feita de ponta a ponta. No backend foi utilizado o Bun, ele é uma alternativa ao Node, mas o grade diferencial do Bun para o Node é que ele é feito em cima do do motor do Safari o JavaScriptCore(JS-Core) já o Node é feito em cima da V8 do Chrome, ou seja são dois motores JavaScript diferentes, um dos grandes diferencias de desenvolver com bun além da performance que é superior ao Node, nós temos que configurar muitos menos a parte ferramental, ou seja, nós perdemos muito menos tempo configurando quando se utiliza o bun. Também estamos utilizando o Drizzle ORM no backend, por não estarmos utilizando o Node, foi utilizado o drizzle que não depende de nenhuma API especifica do Node, ele é um ORM agnósticos de run-time, ou seja, ele pode ser executado em qualquer run-time(ambiente) que execute JavaScript diferente do Prisma ORM, outro diferencial do drizzle é que ele não criar uma ponte entre a aplicação e o banco de dados, como por exemplo no Prisma quando executamos qualquer tipo de operação no banco de dados, essa operação não vai direto para o banco de dados, a nossa aplicação envia um binário que é feito em Rust criado pelo time do Prisma e esse binário interpreta a nossa query e envia ela para o banco de dados, ou seja, existe uma ponte no meio que está fazendo o repasse da comunicação entre a nossa aplicação e o banco de dados, basicamente apesar do drizzle ser um ORM ele segue uma API muito mais proxima de um query builder onde nós escrevemos as nossas queries assim muito proximo do que é um SQL. Na parte do frontend foi utilizado React com Vite, e react-query para fazer toda a parte cache das requisições. Na parte de testes no frontend foi utilizado o Vitest para testes unitários e para testes E2E foi utilizado o Playwright que diferente do Cypress no playwright é possível rodar os testes em simultâneo, no cypress quando rodamos os testes E2E ele sobe um navegador e esse navegador vai rodar os testes em sequencia, já no playwright ele consegue subir várias instâncias do navegador e fazer vários testes ao mesmo tempo e outro diferencial, é que eu consigo rodar os teste em vários navegadores, assim cobrir a mesma funcionalidade em vários navegadores.
# Clone o Repositório
$ [email protected]:Rodrigo001-dev/pizza-shop.git
# Acesse a pasta do projeto(api)
$ cd pizza-shop/api
# Baixe as dependências(api)
$ bun i
# Execute(api)
$ bun run dev
# Acesse a pasta do projeto(web)
$ cd pizza-shop/web
# Baixe as dependências(web)
$ pnpm i
# Execute(web)
$ pnpm run dev
Feito com 💜 by Rodrigo Rael