A comprehensive Android application for managing recipes, ingredients, nutritional information, and sales tracking in a gastronomic restaurant environment.
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.
- 🔐 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 |
uTaste/
├── 📱 UI Layer (Activities & Adapters)
├── 💼 Business Logic (Repositories)
├── 🗄️ Data Layer (Room Database)
└── 🌐 Network Layer (Retrofit + OpenFoodFacts API)
- 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
- Android Studio Arctic Fox or later
- Android SDK 21+ (Lollipop)
- Target SDK 33 (Android 13)
- Java 8+
- Internet connection (for barcode scanning features)
- Clone the repository
git clone https://github.com/OwenOuoba/uTaste.git
cd uTaste-
Open in Android Studio
- Open Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned directory
- Wait for Gradle sync to complete
-
Build and Run
./gradlew build- Connect an Android device or start an emulator
- Click "Run" (Shift+F10)
The application comes with pre-configured users:
| Role | Username | Password |
|---|---|---|
| Admin | admin | admin-pwd |
| Chef | chef | chef-pwd |
| Waiter | (created by admin) | waiter-pwd |
-
Manage Pantry
- Add ingredients via barcode scanning or manual entry
- View nutritional information from OpenFoodFacts
-
Create Recipes
- Add recipe name, description, and image
- Add ingredients from pantry with percentages
- View automatic nutritional calculations
-
View Recipes
- Browse all available recipes with caloric information
-
Record Sales
- Select recipe
- Add customer rating (1-5 stars)
- Add customer comments
-
View Reports
- See sales count per recipe
- Check average ratings
- Create/edit/delete waiter accounts
- Reset user passwords
- Reset database to initial state
Run unit tests:
./gradlew testRun instrumented tests:
./gradlew connectedAndroidTestTest coverage includes:
- User management (10+ tests)
- Recipe operations (10+ tests)
- Nutritional calculations
- Database operations
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
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 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
This was an academic project for SEG2505 at University of Ottawa. While not actively maintained, suggestions and feedback are welcome!
- 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)
- OpenFoodFacts API for nutritional data
- University of Ottawa - Faculty of Engineering
- Course Instructor: Laurent FREREBEAU ([email protected])









