Skip to content

samuelveigarangel/e-commerce-validity

Repository files navigation

E-commerce para produtos perto da validade

(licensa)

Apêndice

Sobre o projeto

Um projeto para vender as melhores ofertas de produtos perto da validade. Como o site é focado para produtos perto da validade, não é viável o serviço de entrega para outras cidades, então é mostrado apenas produtos que estão localizados na mesma cidade do usuário ou perto da sua localidade. Inicialmente, apenas alimentos e bebidas estão disponíveis no site.

Qualquer empresa que revenda alimentos, poderá ser parceira do site. Então, cada produto estará associado algum supermercado. A ideia é mostrar para os clientes os produtos com as melhores ofertas perto de sua localidade. Com um portal dedicado aos lojistas, eles poderão ver seus pedidos, além de poder cadastrar novos produtos no site.



Início

O início é composto por uma navbar, body que mostra os ultimos produtos com opções para selecionar o tipo de produto e um footer.

Navbar: Há um botão que te leva ao inicio, um campo para procurar os produtos pelo nome, botão para ver seu carrinho e um botão para realizar o login ou entrar no perfil do usuário.

Body: No corpo do site é mostrado os ultimos produtos que foram cadastrados no sistema de todas as lojas. Cada produto há um botão adicionar que adicionar o produto ao carrinho e te leva direto ao carrinho.

footer: Informações gerais sobre a loja.

inicio-gif-maker



Produto

Você pode adicionar um produto atráves da página principal pelo botão adicionar ou pela página do produto. Na página do produto, há mais informações sobre o produto, como a descrição e o endereço da loja do produto, além do preço. Vale notar que após o vencimento do produto, não é mais possível acessa a página e adicionar ao carrinho.

ezgif com-gif-maker (3)



Carrinho

Em primeiro instante, a lógica do carrinho foi desenvolvida com escrita e leitura no banco de dados. Só por adicionar um produto no carrinho, era realizado tais operações. Após perceber que isso poderia gerar inconsistências no banco de dados, dado um grande volume de escritas, a lógica do carrinho agora se baseia em sessions. Quando é adicionado um produto, há apenas uma leitura no banco de dados para recuperar os valores e quantidade disponível do produto.

ezgif com-gif-maker (6)



Checkout

Antes de finalizar o pedido, é verificado se todos os pedidos são da mesma loja, se sim, é finalizado o pedido e criado uma ordem para loja que gera um número único de pedido. O usuário poderá chegar na loja e apresentar esse número. A ideia é que se o usuário não realizar o pagamento, o pedido será cancelado e ficará disponível novamente.

ezgif com-gif-maker (7)



Usuário

O usuário dispõe de uma interface para visualizar seus dados pessoais e suas compras.

ezgif com-gif-maker (8)



Lojista

O sistema possui uma parte dedicada ao lojista que deseja anunciar. Nele, há histórico de ordens, ultimas ordens e o cadastro novos produtos. Usuários marcados como cliente, não conseguem visualizar esse portal.



Tecnologia usadas

Backend

  • python
  • Django

Frontend

  • Html
  • Css
  • Bootstrap
  • Javascript

Implantação em produção

Utilizei heroku como serviço de hospedagem e AWS S3 para hospedar as fotos dos produtos que são inseridos pelo lojistas.

Dificuldades e melhorias futuras

Dificuldades

  • Alguma das dificuldades no deploy, foi utilizar tanto arquivos estáticos e media. Por padrão, heroku só aceita arquivos que são enviado no git. Portanto, para fazer o upload de arquivos no sistema, é preciso utilizar outro serviço de hospedagem. O aws S3 é uma ótima escolha, porém, há uma configuração extra para apontar os arquivos de media para outro bucket que não seja o de arquivos estáticos.

Melhorias futuras

  • Adicionar a parte de pagamento e entrega de produtos.
  • Colocar ofertas especiais no início.
  • Chat online com o lojista.



Como executar o projeto

# clonar repositório
git clone https://github.com/samuelveigarangel/estudio-paintblack.git

# Abra o prompt de comando e vá para pasta do projeto

# Crie um ambiente virtual
python -m venv venv

# Ative seu ambiente virtual
venv\scripts\activate

# Instale os requerimentos 
pip install -r requirements.txt

# Faça o migrate para criar a dabatase
py manage.py migrate

# Crie um super user
python manage.py createsuperuser

# Colete os arquivos estáticos
python manage.py collectstatic

# Execute o projeto 
python manage.py runserver

About

E-commerce para produtos perto da validade

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published