Skip to content

Camada WEB - Nutrify é um app que ajuda a controlar refeições, calorias e nutrientes de forma prática. Com metas personalizadas e registros simples, promove equilíbrio, consciência alimentar e bem-estar para transformar a rotina em hábitos saudáveis e sustentáveis.

Notifications You must be signed in to change notification settings

dennysmatos/mts20t2-ppp-nutrify-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nutrify Web

Aplicação Web para gerenciamento de alimentação, dieta e controle de calorias.

  • Stack: Express (Node.js) + EJS + Axios
  • UI: Bulma CSS (+ Dark Mode opcional)
  • Porta: 4000
  • API alvo: http://localhost:3000 (conforme swagger.yaml)

Este projeto foi desenvolvido como critério de avaliação do Portfólio de Projeto Pessoal da Mentoria em Testes de Software 2.0, Turma 2, do mentor Júlio de Lima.

Requisitos

  • Node.js 18+
  • API Nutrify rodando em http://localhost:3000 (conforme swagger.yaml)

Instalação e execução

npm install
npm start

Acesse: http://localhost:4000

Funcionalidades

  • Login/Logout
  • Dashboard com progresso diário (kcal consumidas vs meta)
  • Registro, listagem e remoção de refeições
  • Listagem e CRUD de alimentos (create/update/delete apenas para admin)
  • Tratamento de erros de respostas não 2xx da API
  • Dark Mode com toggle e persistência em localStorage

Fluxos

  • Login (/login): envia POST /users/login para a API, salva JWT em cookie auth_token e carrega o perfil via GET /users/profile.
  • Dashboard (/dashboard): lista refeições (GET /meals), alimentos (GET /foods) e calcula progresso diário somando as calorias das refeições do dia corrente vs calorieGoal do usuário.
  • Refeições:
    • Criar: POST /meals com foods: string[] (IDs de alimentos)
    • Remover: POST /meals/:id/delete
  • Alimentos (/foods):
    • Listar: GET /foods
    • Criar: POST /foods (admin)
    • Atualizar: POST /foods/:id (admin)
    • Remover: POST /foods/:id/delete (admin)

Configuração

  • Sem variáveis de ambiente adicionais. A base da API está embutida em server.js (API_BASE_URL).
  • Porta fixa 4000.

Padrões adotados

  • EJS para views com componentes parciais em views/partials.
  • Bulma para responsividade e estilos; tabelas embrulhadas em .table-container para scroll horizontal em telas menores.
  • Dark Mode via atributo data-theme no body e CSS em public/styles.css.
  • Tratamento de erros: mensagens amigáveis na UI quando a API retorna erro.

Estrutura

server.js
views/
  partials/
    header.ejs
    footer.ejs
  login.ejs
  dashboard.ejs
  foods.ejs
  error.ejs
public/
  styles.css

Notas sobre segurança

  • Token JWT armazenado em cookie HttpOnly com SameSite=Lax.
  • Logout limpa o cookie.

Licença

Uso educacional/demonstrativo no contexto da mentoria.

About

Camada WEB - Nutrify é um app que ajuda a controlar refeições, calorias e nutrientes de forma prática. Com metas personalizadas e registros simples, promove equilíbrio, consciência alimentar e bem-estar para transformar a rotina em hábitos saudáveis e sustentáveis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published