Skip to content

Tasty is a cross‑platform React Native + TypeScript app for personalized meal plans, inventory scanning (barcodes/receipts), and AI‑based recipe recommendations.

Notifications You must be signed in to change notification settings

BRMilev22/tasty

Repository files navigation

Tasty Logo

🍽️ Tasty - Healthy Meal Planning Application

📖 Прочетете на български / Read in Bulgarian

Tasty is a healthy meal planning application developed with React Native and TypeScript, offering both mobile and web versions. Users can create personalized meal plans, track their inventory through barcode and receipt scanning, and receive recipe recommendations based on their inventory and goals.

📦 Features

  • User Registration and Login:

    • Create a profile with basic information such as gender, age, height, and weight.
  • Goals:

    • Set a goal — Weight Gain, Weight Maintenance, or Weight Loss.
  • Dashboard:

    • View personalized progress and statistics, including calorie intake and recent activities.
  • Inventory Management:

    • Scan food products while shopping or in any situation and automatically add them to inventory.
  • AI-powered Recipe Recommendations and Generation:

    • Receive recipes tailored to your inventory and dietary goals.
  • Multi-platform Support:

    • Available on mobile or web.
  • Barcode Scanner, Receipt Scanner, and Food Recognition through Scanning:

    • Scan food products for quick addition to inventory via package barcode; scan receipts for quick food product recognition and addition to inventory; scan food that is recognized through artificial intelligence with generated nutritional values.

🎬 Demo

Click here for a video demonstration of the application.

🛠️ Technologies

  • Frontend:

    • React Native - Framework for building native apps using React.
    • TypeScript - A programming language and typed superset of JavaScript for building reliable applications.
    • NativeWind - Library for using Tailwind CSS with React Native, making styling easier and more consistent across platforms.
    • Expo Go - Platform for universal native apps for Android, iOS, and web.
    • Expo Camera - Used for barcode scanning and image capture.
  • Backend:

    • Node.js - Cross-platform, open-source runtime environment for server-side and networking applications.
    • Express - Minimal and flexible Node.js web application framework.
    • Firebase - Google's platform for secure data storage for mobile and web applications.
  • Documentation

    • MS Word - For creating project and application documentation and brochure.
    • MS PowerPoint - For creating project and application presentation.

🫂 Contributors and Developers

  • Bozhidar Dimov
    • Email: BADimov21@codingburgas.bg
    • Full-Stack Developer
    • Creator of "Tasty"
    • Student of Programming and Information Technologies at High School of Computer Programming and Innovation, Burgas
    • Specialty: Applied Programming
  • Boris Milev
    • Email: BRMilev22@codingburgas.bg
    • Full-Stack Developer
    • Creator of "Tasty"
    • Student of Programming and Information Technologies at High School of Computer Programming and Innovation, Burgas
    • Specialty: Robot Programming

📊 Getting Started

📋 Prerequisites

To get started, make sure you have the following installed:

  • Node.js: Download Node.js
  • Expo CLI: Install by copying and pasting this command in your terminal:
    npm install -g expo-cli
    

⚙️ Installation

  • Clone the repository by copying the commands and pasting them in your terminal:

    git clone "https://github.com/BRMilev22/tasty.git"
    cd tasty
  • Install dependencies by copying the commands and pasting them in your terminal:

    npm install
    npx expo start

    Follow the instructions to run the application on your preferred device or emulator.

🧪 Testing

  • To run tests for core components and utilities, copy the command and paste it in your terminal:

    npm test

📸 Application Screenshots


Dashboard
Suggested Meal Management Menu
Beverage Barcode Scanning
User Inventory

📜 Documentation

Here you will find links to the public documentation, presentation, and brochure of the project and application. They are provided for reference only and should not be used as templates for other projects or for other purposes without explicit permission from the creators of "Tasty".

📄 Documentation
📊 Presentation
📘 Brochure

🔧 Project File Architecture

The "Tasty" project is written in React Native with TypeScript and uses one of the most widely adopted compatible architectures, namely - feature-sliced architecture.
Overview of the structure of all directories and the most important files in them:

tasty/
├── .expo/
├── .firebaserc                 
├── .gitignore                 
├── android/                   
├── app.json                   
├── babel.config.js             
├── docs/                       
│   ├── brochure/
│   ├── presentation/
│   └── tasty_public.pdf
├── eas.json                    
├── expo-env.d.ts              
├── firebase.json               
├── firestore.rules             
├── index.js                    
├── ios/                        
├── metro.config.js            
├── package-lock.json           
├── package.json               
├── react-native.d.ts           
├── README.md                   
├── scripts/                    
│   └── testReceiptProcessing.ts
├── SECURITY.md                
├── src/                       
│   ├── pages/                  
│   │   ├── meals/
│   │   │   ├── addMeal.tsx
│   │   │   ├── mealDetail.tsx
│   │   │   ├── planMeal.tsx
│   │   │   └── savedMeals.tsx
│   │   ├── recipes/
│   │   │   ├── allRecipes.tsx
│   │   │   ├── RecipeDetailScreen.tsx
│   │   │   └── recipes.tsx
│   │   ├── weight-tracking/
│   │   │   └── trackWeight.tsx
│   │   └── welcome/
│   │       └── welcomeScreen.tsx
│   ├── shared/                 
│   │   ├── api/
│   │   │   ├── backend/
│   │   │   │   ├── index.ts
│   │   │   │   ├── package-lock.json
│   │   │   │   └── package.json
│   │   │   └── services/
│   │   │       ├── mealService.ts
│   │   │       ├── receiptProcessing.ts
│   │   │       └── recipeService.ts
│   │   ├── assets/
│   │   │   ├── fonts/
│   │   │   │   └── SpaceMono-Regular.ttf
│   │   │   └── images/
│   │   │       ├── adaptive-icon.png
│   │   │       ├── favicon.png
│   │   │       ├── icon.png
│   │   │       ├── splash.png
│   │   │       ├── tasty-logo.png
│   │   │       └── default-meal.jpg
│   │   ├── config/            
│   │   │   ├── firebase.json   
│   │   │   ├── firebaseConfig.ts
│   │   │   ├── firestore.rules
│   │   │   └── tailwind.config.js
│   │   ├── lib/
│   │   │   └── Colors.ts
│   │   ├── types/
│   │   │   ├── env.d.ts
│   │   │   └── navigation.ts
│   │   └── ui/                
│   │       ├── _tests_/
│   │       │   └── StyledText-test.js
│   │       ├── EditScreenInfo.tsx
│   │       ├── ExternalLink.tsx
│   │       ├── Logo.tsx
│   │       ├── StyledText.tsx
│   │       ├── Themed.tsx
│   │       ├── useClientOnlyValue.tsx
│   │       ├── useClientOnlyValue.web.tsx
│   │       ├── useColorScheme.ts
│   │       └── useColorScheme.web.ts
│   └── widgets/              
│       ├── meal-cards/
│       │   └── MealSelector.tsx
│       └── nutrition/
│           └── NutritionCard.tsx
└── tsconfig.json              

Thank you and we hope you enjoy the application!


Created by the "Tasty" team - Bozhidar Dimov and Boris Milev | © 2024 - 2025 All rights reserved.

Thank you for checking out our repo! Show some ❤️ by giving a ⭐️ to the repo!

About

Tasty is a cross‑platform React Native + TypeScript app for personalized meal plans, inventory scanning (barcodes/receipts), and AI‑based recipe recommendations.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •