Skip to content

Nyfeu/Cookster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

280 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cookster 👨🏻‍🍳

Cookster é um aplicativo web e mobile que ajuda os usuários a gerenciarem suas despensas de ingredientes e compartilharem receitas, tudo isso promovendo o consumo consciente e o combate ao desperdício de alimentos.

👨🏻‍👩🏻‍👦🏻‍👦🏻 Integrantes do Grupo

Nome R.A.
André Solano Ferreira Rodrigues Maiolini 19.02012-0
Durval Consorti Soranz de Barros Santos 22.01097-0
Leonardo Roberto Amadio 22.01300-8
Lucas Castanho Paganotto Carvalho 22.00921-3

🌟 Por que escolher o Cookster?

Você já abriu a geladeira e viu ingredientes esquecidos prestes a vencer? Ou ficou sem ideias para transformar o que tem em casa em uma refeição incrível? O Cookster resolve isso!

Somos mais que um app de receitas: somos uma comunidade que combate o desperdício alimentar, conectando sua criatividade na cozinha ao consumo consciente. Com inteligência e colaboração, ajudamos você a:

  • Economizar tempo e dinheiro: receitas inteligentes baseadas no que você já tem.
  • Reduzir o desperdício: alertas de validade e priorização de ingredientes próximos do vencimento.
  • Inspirar e ser inspirado: compartilhe suas criações e descubra pratos inovadores de outros usuários.
  • Cozinhar com propósito: cada receita preparada contribui para um mundo mais sustentável.

🌍 Visão Geral

Combinando uma abordagem prática com funcionalidades sociais, o Cookster permite:

  • Monitorar ingredientes (quantidade, validade, categoria).
  • Receber sugestões de receitas baseadas nos ingredientes disponíveis.
  • Priorizar receitas com base em ingredientes próximos da validade.
  • Compartilhar receitas com outros usuários e navegar por receitas de outros.
  • Buscar receitas por autor, nome, ingredientes ou tags.
  • Reduzir o desperdício de alimentos, alinhando-se com os Objetivos de Desenvolvimento Sustentável (ODS).

🌱 Alinhado com os ODS da ONU

O Cookster contribui diretamente com o ODS 12 (Consumo e Produção Responsáveis) ao:

  • Reduzir o desperdício de alimentos nas casas dos usuários.
  • Promover educação sobre planejamento de compras e aproveitamento integral.
  • Criar uma rede de usuários conscientes.

Cookster: Porque cada ingrediente merece virar história, não lixo. ♻️🍴

🚀 Funcionalidades Principais

  • 📦 Gestão de Despensa: adição e exclusão de ingredientes.
  • 🔪 Receitas Inteligentes: sugestões baseadas no que você já tem.
  • Validade e Prioridade: sugestões com base na urgência de uso dos ingredientes. (futuramente)
  • 📲 Rede Social de Receitas: explore, publique, curta e comente receitas.
  • 🔍 Filtros Poderosos: por nome, autor, ingredientes disponíveis, tags e mais. (futuramente)
  • Sustentabilidade: foco em consumo consciente e combate ao desperdício.

🏗️ Estrutura do Projeto

  • back/: Contém todos os microsserviços do backend (Node.js, Python, Dart).
  • front/: Contém a aplicação web (React.js).
  • front_mobile/: Contém a aplicação móvel (Flutter).
  • back/kubernetes/: Contém os ficheiros de configuração para deployment no Kubernetes.
  • docker-compose.yml: Orquestra os serviços de backend para desenvolvimento local.

⚙️ Tecnologias

🖥️ Frontend:

  • React.js
  • Axios

📱 Frontend (Mobile):

  • Flutter
  • Dart

🌐 Backend (Arquitetura de Microsserviços):

  • Node.js
  • FastAPI
  • Python
  • Express.js
  • Shelf

🐳 DevOps:

  • Docker & Docker Compose
  • Kubernetes

▶️ Como Executar o Projeto

Para colocar o Cookster em funcionamento, você precisará iniciar todos os microsserviços do back-end e rodar o frontend.

1. Clonar o Repositório

Primeiro, clone o repositório do Cookster para sua máquina local:

git clone https://github.com/Nyfeu/Cookster.git
cd Cookster

2. Inicializar Serviços do Back-end

Para cada serviço, deve-se instalar as depedências usando npm e colocá-lo em execução:

  • api-gateway
  • event-bus
  • mss-autenticacao
  • mss-ingredient-classifier (Python)
  • mss-pantry
  • mss-profile-service
  • mss-recipe

Deve-se executar os seguintes comandos:

cd back/mss-a-ser-inicializado
npm install
npm run devStart

⚠️ Deve-se inicializar event-bus antes dos demais serviços. Para que eles possam se registrar para receber eventos do barramento.

Com exceção de mss-ingredient-classifier que foi desenvolvido em Python. A metodologia para execução dele é descrita no README.md em mss-ingredientes-classifier.

Precisa-se também, colocar um arquivo .env para cada serviço, como o seguinte:

JWT_SECRET=sua_chave_secreta_jwt
GOOGLE_CLIENT_ID=seu_client_id_google
GOOGLE_CLIENT_SECRET=seu_client_secret_google
FACEBOOK_CLIENT_ID=seu_client_id_facebook
FACEBOOK_CLIENT_SECRET=seu_client_secret_facebook
DB_USER=seu_db_user
DB_PASS=seu_db_password

Caso se opte por utilizar containers Docker, um único arquivo .env é necessário na raíz.

3. Inicializar Servidor Front-end (Web)

cd front
npm install
npm run dev

4. Inicializar Servidor Front-end (Mobile)

cd front_mobile
flutter pub get
flutter run

5. Docker-Compose (Alternativamente)

Para evitar ter que inicializar cada serviço individualmente, criou-se um arquivo docker-compose.yml na raiz do projeto, que realiza o deploy de todos os serviços - exceto o front-end.

Para isso, é necessário criar (build) as imagens e inicializar os containers. Pode-se realizar isso da seguinte forma:

docker-compose up --build

ou

docker-compose build
docker-compose up

Deve-se adicionar à raíz do projeto o arquivo .env:

JWT_SECRET=sua_chave_secreta_jwt
GOOGLE_CLIENT_ID=seu_client_id_google
GOOGLE_CLIENT_SECRET=seu_client_secret_google
FACEBOOK_CLIENT_ID=seu_client_id_facebook
FACEBOOK_CLIENT_SECRET=seu_client_secret_facebook
DB_USER=seu_db_user
DB_PASS=seu_db_password

6. Kubernetes (Alternativa de Deploy)

O projeto também inclui arquivos de configuração para deploy no Kubernetes, localizados em back/kubernetes/.

Para aplicar as configurações (após ter um cluster Kubernetes configurado e o kubectl apontando para ele):

cd /back/kubernetes/
kubectl apply -f .
kubectl apply -f .\deployments\
kubectl apply -f .\services\

About

👨🏻‍🍳 Cookster - Gerencie sua despensa, descubra receitas inteligentes e combata o desperdício de alimentos. Um app social e sustentável feito com React.js e Node.js.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors