NutriCount API is a robust and scalable API designed to help users track their food macronutrients, calculate the nutritional content of their meals, and stay on top of their health goals. This project follows best practices in software architecture, testing, and development workflow.
- .NET Core – Backend framework
- C# – Primary programming language
- Entity Framework Core – ORM for database interactions
- SQL Server – Database management
- MySQL – Database management
- Docker – Containerization
- Azure DevOps – CI/CD & pipelines
- JWT Authentication – Secure login and session management
- RabbitMQ (Mensageria) – Message queuing for event-driven architecture
- FluentValidation – Input validation
- SonarCloud/SonarQube – Code quality analysis
Macronutrient Calculation:
- The API automatically calculates nutritional data based on the foods entered.
- Users receive daily feedback and summaries.
- ✅ User registration and authentication with JWT and Refresh Tokens
- ✅ Authentication via Google Login
- ✅ Food database with automatic calculation of macronutrients
- ✅ Creation of a food diary with personalized nutritional monitoring
- ✅ Consultation of nutritional data of registered foods
- ✅ Editing and deleting food records
- ✅ Automatic calculation of calories, proteins, carbohydrates and fats
- ✅ Daily summary panel (planned)
- ✅ Generation of nutritional reports (planned)
- ✅ API built following Clean Architecture and Domain-Driven Design
- ✅ Data validation with FluentValidation
- ✅ Secure authentication and session management with JWT and Refresh Token
- ✅ Messaging implementation with RabbitMQ
- ✅ Integration with Docker for containerization
- ✅ Integration with SonarCloud/SonarQube for code quality analysis
- ✅ CI/CD pipelines using Azure DevOps
- ✅ Unit tests and integration tests
- Domain-Driven Design (DDD)
- SOLID Principles
- Clean Code
- Dependency Injection
- Unit and Integration Tests
- CI/CD with Azure DevOps
- Automated Pipelines
- Docker and Containerization
- Database Migrations
- JWT Authentication and Refresh Tokens
- Social Login with Google
- Messaging with RabbitMQ
- Validation with FluentValidation
- Quality Analysis with SonarCloud/SonarQube
- Git & GitFlow
- Agile SCRUM Methodology
Contributions are welcome! Open an issue, suggest improvements or submit your pull request.
