Tecnologias, Ferramentas e Técnicas utilizadas:
- Padrão Arquitetural MVC
- Orientação a Objetos
- Padrões de projeto Command e Chain of Responsibility
- SOLID (Tentei pelo menos xD)
Projeto em produção: https://bazarnovavida-production.up.railway.app (Projeto rodando no Railway em plano gratuito, fica ativo apenas 500h por mês)
Esse projeto MVC funciona como um comércio eletrônico de roupas usadas, tornando digital o bazar da minha igreja. O programa utiliza o padrão de aplicação em camadas, sendo os modelos e controladores em Java e a interface em HTML/CSS com Thymeleaf.
Os itens são exibidos após uma requisição que recupera do banco de dados apenas os itens com o status de DISPONÍVEL.
Clicando no item, abre-se uma outra visualização que possibilita ao usuário que ele adicione ao seu carrinho, caso esteja logado - caso contrário, o usuário é redirecionado para a página de login para iniciar uma sessão. Quando um item é adicionado ao carrinho, seu estado é alterado para INDISPONIVEL, evitando que ele seja exibido na tela inicial.
O carrinho é um atributo da classe usuário que não é persistido, sendo uma lista de itens que quando confirmada pelo usuário em "Finalizar pedido" transforma-se em um pedido.
O pedido de cada usuário é listado com base no ID registrado no banco de dados. Para evitar que um usuário tenha acesso a dados do pedido de outro usuário, existe uma condição na requisição que faz com que o id de usuário do pedido deva ser igual ao id do usuário logado - isso quer dizer que é necessário estar logado para ter acesso a essa página.
Visualização do pedido. O pedido possui 3 estado (EM ANDAMENTO, CANCELADO e CONCLUIDO). Quando um pedido é cancelado, os itens contidos dele voltam ao estado DISPONIVEL.
Essa página permite adicionar as peças no banco de dados para serem exibidas. Essa tela só pode ser acessada por usuários do tipo ADMINISTRADOR
Ideias a serem implementadas:
- Página para listar todos os pedidos do banco de dados (recurso para usuários administradores)
- Edição de itens (recurso para usuários administradores)
- implementação de formas de pagamento