Este repositório contém o backend do projeto Sujeito Pizza, um sistema de atendimento para pizzarias. O backend é responsável por gerenciar pedidos, produtos e a comunicação entre a cozinha (web) e os garçons (mobile). O frontend (web e mobile) está separado em outros repositórios.
O Sujeito Pizza é um sistema completo para pizzarias, onde:
- Garçons usam um aplicativo mobile para realizar pedidos e gerenciar atendimentos.
- Cozinha usa uma interface web para visualizar e preparar os pedidos.
- Backend gerencia toda a lógica de negócios, incluindo pedidos, produtos, autenticação e integração com serviços externos (como Cloudinary para upload de imagens).
Este repositório é dedicado ao backend, desenvolvido em Node.js com TypeScript e hospedado na Vercel.
- Linguagem: TypeScript
- Framework: Express
- Banco de Dados: PostgreSQL (hospedado no Neon)
- ORM: Prisma
- Autenticação: JSON Web Token (JWT) e Bcrypt
- Upload de Imagens: Multer e Express-fileupload (hospedadas no Cloudinary)
- Documentação: Swagger (UI e JSDoc)
- Ferramentas de Desenvolvimento:
- ts-node-dev (execução em desenvolvimento)
- Cors (para permitir requisições de diferentes origens)
- Dotenv (gerenciamento de variáveis de ambiente)
- Criar pedidos em rascunho: Os garçons podem iniciar pedidos e adicionar itens antes de enviar para a cozinha.
- Adicionar itens ao pedido: Cada pedido pode conter vários produtos (pizzas, bebidas, etc.).
- Enviar para a cozinha: Quando o pedido estiver pronto, ele é enviado para a cozinha para preparo.
- Finalizar pedido: Após o preparo, a cozinha pode finalizar o pedido.
- Autenticação de usuários (garçons e cozinha) usando JWT.
- Proteção de rotas com middleware de autenticação.
- Upload de imagens de produtos usando Multer e Express-fileupload.
- Hospedagem das imagens no Cloudinary.
- Documentação completa da API usando Swagger.
- Acessível em: https://pizzaria-beckend.vercel.app/api-docs
- Node.js (v18 ou superior)
- PostgreSQL (ou use o Neon para um banco de dados em nuvem)
- Conta no Cloudinary (para upload de imagens)
-
Clone o repositório:
git clone https://github.com/LucasDoGit/pizzaria-beckend.git cd pizzaria-beckend
-
Instale as dependências:
yarn install
-
Instale as dependências:
DATABASE_URL="sua_url_do_postgres" JWT_SECRET="sua_chave_secreta_jwt" PORT="sua_porta_local" CLOUDINARY_CLOUD_NAME="seu_cloud_name" CLOUDINARY_API_KEY="sua_api_key" CLOUDINARY_API_SECRET="sua_api_secret"
-
Execute as migrations do Prisma:
yarn prisma migrate dev
-
Execute o projeto
- Para desenvolvimento:
yarn dev
- Para Para produção:
yarn build yarn start
- Para desenvolvimento:
-
Acesse a documentação:
- Localmente: http://localhost:3333/api-docs (mude para a porta local que definir)
- Em produção: https://pizzaria-beckend.vercel.app/api-docs (ou o ulr da sua API hospedada)
- Documentação da API: https://pizzaria-beckend.vercel.app/api-docs
- Endpoint da API: https://pizzaria-beckend.vercel.app
- Repositório do Frontend Web: https://github.com/LucasDoGit/pizzaria-frontend
- Repositório do Frontend Mobile: https://github.com/LucasDoGit/pizzaria-mobile
Para obter mais informações, entre em contato comigo em:
- Email: [email protected]
- GitHub: https://github.com/LucasDoGit