Este é um projeto de exemplo para um aplicativo de compras de bebidas desenvolvido em Laravel. O aplicativo permite que os usuários naveguem por produtos, adicionem itens a um carrinho de compras, concluam pedidos e façam o checkout. Este README fornece uma visão geral das principais funcionalidades e estrutura do projeto.
- Requisitos
- Instalação
- Estrutura do Banco de Dados
- Fluxo do Aplicativo
- API Endpoints
- Sincronização Carrinho-Pedido
- Contribuindo
- Licença
- PHP >= 8.1
- Laravel >= 9.x
- Banco de Dados MySQL
- Composer
-
Clone o repositório:
docker-compose up -d
O projeto utiliza o Laravel Eloquent ORM para gerenciar o banco de dados. A estrutura do banco de dados é definida nas migrações localizadas em database/migrations. As principais tabelas do banco de dados são:
- usuarios: Armazena informações dos usuários/clientes.
- produtos: Contém detalhes dos produtos disponíveis.
- carrinho_compras: Registra carrinhos de compras ativos dos usuários.
- itens_carrinho: Associa produtos aos carrinhos de compras.
- pedidos: Armazena informações sobre pedidos feitos pelos usuários.
- itens_pedido: Vincula produtos a pedidos.
O aplicativo segue o seguinte fluxo geral:
Usuários registram-se ou fazem login em suas contas. Eles navegam pelos produtos disponíveis e adicionam itens ao carrinho de compras. Os itens do carrinho de compras são sincronizados com um pedido durante o processo de checkout. Os pedidos são processados, verificados e entregues com base no status.
O aplicativo oferece uma API REST para gerenciar várias operações. As rotas da API estão definidas em routes/api.php. Exemplos de endpoints incluem:
- POST /api/usuarios: Cria um novo usuário.
- GET /api/produtos: Retorna a lista de todos os produtos disponíveis.
- POST /api/carrinho-compras: Cria um novo carrinho de compras.
- POST /api/pedidos: Cria um novo pedido com base no carrinho de compras ativo. Consulte a documentação da API para obter mais detalhes e exemplos de uso.
O projeto implementa um mecanismo para sincronizar o carrinho de compras com um pedido durante o checkout. Isso garante que o pedido reflita com precisão os itens do carrinho no momento do pedido. Durante o checkout, o carrinho é bloqueado para modificações e os itens são transferidos para um novo pedido.
Contribuições são bem-vindas! Sinta-se à vontade para abrir problemas, propor melhorias ou enviar solicitações de pull. Por favor, siga as diretrizes de contribuição do projeto.
Este projeto é licenciado sob a Licença MIT.
-
Existe importação de produtos da sorocaba - consulta integridade na api de produtos
-
Como vai ser o fluxo com o 3DS - redirecionar microserviço getnet - tentativa
-
Fila de pedidos - ok