Skip to content

A comprehensive Android application for managing recipes, ingredients, nutritional information, and sales tracking in a gastronomic restaurant environment.

Notifications You must be signed in to change notification settings

OwenOuoba/uTaste

Repository files navigation

🍽️ uTaste - Restaurant Recipe Management System

Android Java

A comprehensive Android application for managing recipes, ingredients, nutritional information, and sales tracking in a gastronomic restaurant environment.

uTaste Banner

📱 Overview

uTaste is a full-featured restaurant management system designed for Android devices. It enables chefs to create recipes with automatic nutritional calculations, waiters to track sales and customer ratings, and administrators to manage user accounts.

✨ Key Features

  • 🔐 Multi-Role Authentication - Admin, Chef, and Waiter roles with role-based access control
  • 🥗 Recipe Management - Create, edit, and delete recipes with images and descriptions
  • 🏪 Smart Pantry - Global ingredient inventory with barcode scanning
  • 📊 Nutritional Analysis - Automatic calculation of calories, proteins, carbs, and fats
  • 🔍 Barcode Scanning - Integration with OpenFoodFacts API for instant nutritional data
  • 💰 Sales Tracking - Record sales with customer ratings and comments
  • 📈 Sales Reports - Comprehensive analytics on recipe performance
  • 🗄️ Local Database - SQLite with Room for offline functionality
Login Screen Recipe List Recipe Display

🏗️ Architecture

uTaste/
├── 📱 UI Layer (Activities & Adapters)
├── 💼 Business Logic (Repositories)
├── 🗄️ Data Layer (Room Database)
└── 🌐 Network Layer (Retrofit + OpenFoodFacts API)

Tech Stack

  • Language: Java
  • IDE: Android Studio
  • Database: SQLite with Room Persistence Library
  • Architecture: Repository Pattern with DAO
  • API Integration: Retrofit 2 + OpenFoodFacts API
  • Image Loading: Glide
  • Barcode Scanning: ZXing
  • Testing: JUnit 4

📋 Requirements

  • Android Studio Arctic Fox or later
  • Android SDK 21+ (Lollipop)
  • Target SDK 33 (Android 13)
  • Java 8+
  • Internet connection (for barcode scanning features)

🚀 Getting Started

Installation

  1. Clone the repository
   git clone https://github.com/OwenOuoba/uTaste.git
   cd uTaste
  1. Open in Android Studio

    • Open Android Studio
    • Select "Open an Existing Project"
    • Navigate to the cloned directory
    • Wait for Gradle sync to complete
  2. Build and Run

   ./gradlew build
  • Connect an Android device or start an emulator
  • Click "Run" (Shift+F10)

Default Users

The application comes with pre-configured users:

Role Username Password
Admin admin admin-pwd
Chef chef chef-pwd
Waiter (created by admin) waiter-pwd

📖 User Guide

For Chefs

  1. Manage Pantry

    • Add ingredients via barcode scanning or manual entry
    • View nutritional information from OpenFoodFacts
  2. Create Recipes

    • Add recipe name, description, and image
    • Add ingredients from pantry with percentages
    • View automatic nutritional calculations

For Waiters

  1. View Recipes

    • Browse all available recipes with caloric information
  2. Record Sales

    • Select recipe
    • Add customer rating (1-5 stars)
    • Add customer comments
  3. View Reports

    • See sales count per recipe
    • Check average ratings

For Administrators

  • Create/edit/delete waiter accounts
  • Reset user passwords
  • Reset database to initial state

🧪 Testing

Run unit tests:

./gradlew test

Run instrumented tests:

./gradlew connectedAndroidTest

Test coverage includes:

  • User management (10+ tests)
  • Recipe operations (10+ tests)
  • Nutritional calculations
  • Database operations

📊 Project Structure

src/main/java/com/group21/utaste/
├── activity/           # UI Activities
│   ├── LoginActivity
│   ├── ChefActivity
│   ├── WaiterActivity
│   ├── RecipeEditActivity
│   └── ...
├── adapter/            # RecyclerView Adapters
│   ├── RecipeListAdapter
│   ├── IngredientListAdapter
│   └── SalesReportAdapter
├── api/               # API Services
│   ├── OpenFoodFactsApi
│   └── PexelsApi
├── db/                # Database Layer
│   ├── AppDatabase
│   ├── UserEntity/Dao
│   ├── RecipeEntity/Dao
│   ├── IngredientEntity/Dao
│   └── SaleEntity/Dao
└── model/             # Data Models

🎨 Screenshots

Chef Interface

Waiter Interface

🔮 Future Enhancements

  • Cloud synchronization across multiple devices
  • Photo upload for custom recipe images
  • Export reports to PDF
  • Multi-language support
  • Dark mode theme
  • Recipe cost calculation
  • Inventory management with low-stock alerts

🤝 Contributing

This was an academic project for SEG2505 at University of Ottawa. While not actively maintained, suggestions and feedback are welcome!

👥 Team

  • Ouoba, Thiabrimani Owen Yvan - LinkedIn | GitHub
  • Bouimajdil, Dounia
  • Fredette, Nicolas
  • Patrick, Justin Connor

Developed as part of SEG2505 - Introduction to Software Engineering course at University of Ottawa (Fall 2025)

🙏 Acknowledgments

  • OpenFoodFacts API for nutritional data
  • University of Ottawa - Faculty of Engineering
  • Course Instructor: Laurent FREREBEAU ([email protected])

About

A comprehensive Android application for managing recipes, ingredients, nutritional information, and sales tracking in a gastronomic restaurant environment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages