O Distribulanche é uma aplicação desenvolvida como parte da disciplina de Sistemas Distribuídos na UNIVASF. Ela foi projetada para conectar vendedores e compradores de lanches de maneira eficiente e organizada.
Diante da proibição de vendas espontâneas nos corredores do campus, a plataforma surge como uma solução inovadora para permitir que vendedores cadastrem produtos e usuários realizem compras de forma centralizada.
Este projeto utiliza as seguintes tecnologias:
- Backend: Django
- Frontend: Django Templates
- Banco de Dados: PostgreSQL
- Ambiente: Docker e Docker Compose
- Ferramentas de Desenvolvimento: Git e Visual Studio Code
- Design de Interface: Canva
- Outras Tecnologias: Google Cloud, AJAX, Bootstrap...
- Cores:
- #8c0234
- #fc7c0f
- Fonte da Logo: Euphoria Script
- Vendedores:
- Cadastrar produtos e definir horários de disponibilidade.
- Gerenciar pedidos e responder a mensagens no chat.
- Usuários:
- Visualizar catálogo de produtos.
- Realziar compras.
- Avaliar compras.
- Comunicação direta com vendedores via chat.
- Customização do Admin Django.
- Autenticação e recuperação de senha.
- Validação de dados e envio de e-mails.
- Banco de dados robusto com:
- 8 tabelas principais.
- 5 tabelas auxiliares.
- Framework de mensagens e paginação.
- Integração com Mercado Pago para pagamentos via API REST.
- Fornecimento de API para consumo de recursos por outros sistemas.
Para garantir a segurança e a privacidade dos dados, algumas informações sensíveis foram removidas deste repositório. Isso inclui:
- Chaves de API do Mercado Pago.
- Senhas de aplicativos SMTP utilizados para envio de e-mails, como o Google App Password.
Caso precise executar o projeto em ambiente local, você deverá configurar essas credenciais manualmente em arquivos apropriados, como o .env
. Essas informações devem ser obtidas diretamente nas plataformas correspondentes:
- A chave de API do Mercado Pago pode ser gerada na plataforma Mercado Pago.
- A senha de aplicativo SMTP do Google pode ser configurada na Central de Segurança do Google.
Recomendamos que não compartilhe essas credenciais publicamente para evitar problemas de segurança.
- Certifique-se de ter as seguintes ferramentas instaladas:
- Docker e Docker Compose
- Python 3.10+
- Git
-
Clone o Repositório
git clone https://github.com/seu-usuario/distribulanche.git cd distribulanche
-
Configure os Domínios Locais Adicione os seguintes domínios ao arquivo
/etc/hosts
:127.0.0.1 projetosd.local 127.0.0.1 www.projetosd.local 127.0.0.1 adm.projetosd.local 127.0.0.1 api.projetosd.local
-
Inicialize o Banco de Dados Execute o script de inicialização do banco:
sh init_db.sh
-
Suba os Contêineres Inicie os serviços com Docker Compose:
docker compose up -d
-
Configure o Django Realize as migrações e crie o superusuário:
docker exec -it web python manage.py makemigrations docker exec -it web python manage.py migrate docker exec -it web python manage.py createsuperuser
-
Acesse os Serviços Locais Utilize os seguintes endereços no navegador:
- Frontend:
https://projetosd.local
- Administração Banco dados:
https://adm.projetosd.local
- API:
https://api.projetosd.local
- Frontend:
- Criar uma instância de máquina virtual (VM) em uma nuvem de sua preferência (AWS, GCP, Azure, etc.).
- Configurar a conectividade via SSH.
-
Crie Chaves SSH Gere suas chaves SSH localmente:
ssh-keygen -t rsa -f projetosd.pem -C "[email protected]" -b 2048
-
Configure a Instância
- Adicione a chave pública à configuração da VM.
- Faça login na instância via SSH:
ssh -i projetosd.pem usuario@<ip-da-instancia>
-
Clone o Repositório
git clone https://github.com/seu-usuario/distribulanche.git cd distribulanche
-
Prepare o Ambiente
- Crie a pasta
/secrets
e adicione as variáveis no arquivo.env.prod
. - Configure senhas seguras para produção.
- Crie a pasta
-
Inicialize os Serviços Inicie os contêineres Docker:
docker compose up -d
-
Configure os Domínios Remotos Configure os domínios públicos para os serviços, como:
- Frontend:
https://www.projetosd.com.br
- Administração:
https://adm.projetosd.com.br
- API:
https://api.projetosd.com.br
- Frontend:
-
Acesse os Serviços Remotos Utilize os endereços configurados no domínio remoto.
Projeto desenvolvido por estudantes da UNIVASF como parte da disciplina de Sistemas Distribuídos:
Este projeto está licenciado sob a MIT License. Sinta-se à vontade para usar, modificar e distribuir!
Agradecemos à UNIVASF e ao professor Jairson Rodrigues, responsável pela disciplina de Sistemas Distribuídos por nos proporcionar a oportunidade de desenvolver este projeto.