An open API service indexing awesome lists of open source software.

https://github.com/gabyfachini/nutricountapi

A API food macronutrient tracker that allows you to easily calculate the nutritional content of your meals and stay on top of your health goals.
https://github.com/gabyfachini/nutricountapi

azure-devops ci-cd clean-architecture clean-code database dependency-injection docker domain-driven-design entity-framework jwt-authentication mysql solid sqlserver unit-testing

Last synced: 13 days ago
JSON representation

A API food macronutrient tracker that allows you to easily calculate the nutritional content of your meals and stay on top of your health goals.

Awesome Lists containing this project

README

          

# NutriCount API šŸ„—šŸ’Ŗ

**NutriCount API** é uma API robusta e escalÔvel, projetada para ajudar os usuÔrios a acompanhar seus macronutrientes alimentares, calcular o valor nutricional de suas refeições e manter o controle de suas metas de saúde. Este projeto segue as melhores prÔticas de arquitetura de software, testes e fluxo de desenvolvimento.

---

## šŸ“¦ Tecnologias Utilizadas

- **.NET Core** – Framework backend
- **C#** – Linguagem de programação principal
- **Entity Framework Core** – ORM para interação com o banco de dados
- **SQL Server** – Gerenciamento de banco de dados
- **MySQL** – Gerenciamento de banco de dados
- **Docker** – Containerização
- **Azure DevOps** – CI/CD e pipelines
- **Autenticação JWT** – Login seguro e gerenciamento de sessƵes
- **RabbitMQ (Mensageria)** – Fila de mensagens para arquitetura orientada a eventos
- **FluentValidation** – Validação de entrada
- **SonarCloud/SonarQube** – AnĆ”lise de qualidade de código

---

## šŸ“± Visualização do App

![image](https://github.com/user-attachments/assets/a932644b-81ea-4e30-b568-91f01b37e3eb)

**CƔlculo de Macronutrientes:**
- A API calcula automaticamente os dados nutricionais com base nos alimentos inseridos.
- Os usuƔrios recebem feedback e resumos diƔrios.

---

## šŸš€ Funcionalidades

- āœ… Cadastro e autenticação de usuĆ”rios com JWT e Refresh Tokens
- āœ… Autenticação via Google Login
- āœ… Banco de dados de alimentos com cĆ”lculo automĆ”tico de macronutrientes
- āœ… Criação de diĆ”rio alimentar com acompanhamento nutricional personalizado
- āœ… Consulta de dados nutricionais de alimentos cadastrados
- āœ… Edição e exclusĆ£o de registros alimentares
- āœ… CĆ”lculo automĆ”tico de calorias, proteĆ­nas, carboidratos e gorduras
- āœ… Painel de resumo diĆ”rio (planejado)
- āœ… Geração de relatórios nutricionais (planejado)
- āœ… API construĆ­da seguindo Clean Architecture e Domain-Driven Design
- āœ… Validação de dados com FluentValidation
- āœ… Gerenciamento seguro de autenticação e sessƵes com JWT e Refresh Token
- āœ… Implementação de mensageria com RabbitMQ
- āœ… Integração com Docker para containerização
- āœ… Integração com SonarCloud/SonarQube para anĆ”lise de qualidade de código
- āœ… Pipelines de CI/CD utilizando Azure DevOps
- āœ… Testes unitĆ”rios e testes de integração

---

## šŸ“š O Que VocĆŖ Aprende Neste Projeto

- Domain-Driven Design (DDD)
- PrincĆ­pios SOLID
- Clean Code
- Injeção de Dependência
- Testes UnitÔrios e de Integração
- CI/CD com Azure DevOps
- Pipelines Automatizadas
- Docker e Containerização
- Migrations de Banco de Dados
- Autenticação JWT e Refresh Tokens
- Login Social com Google
- Mensageria com RabbitMQ
- Validação com FluentValidation
- AnƔlise de Qualidade com SonarCloud/SonarQube
- Git & GitFlow
- Metodologia Ɓgil SCRUM

---

## šŸ¤ Contribuindo
Contribuições são bem-vindas! Abra uma issue, sugira melhorias ou envie seu pull request.