
Pi Chef
Web Project
A flask-based webapp to store recipes and display them on a Raspberry Pi with a 7-inch touchscreen.
← Back to ProjectsPi Chef
Summary
Pi Chef is a simple Flask webapp that takes recipes stored in a SQLite3 database and displays them in a simple, touchscreen-friendly format to be used with a Raspberry Pi and its 7" touchscreen display as a "recipe kiosk" in the kitchen.

Project Overview
The concept behind Pi Chef emerged from the common kitchen problem of managing physical recipe cards and cookbooks while cooking. With ingredients on your hands and limited counter space, traditional recipe formats can be cumbersome and impractical. Pi Chef transforms a Raspberry Pi into a dedicated kitchen assistant that provides easy access to your recipe collection through a clean, touch-friendly interface.
The application is specifically designed for the Raspberry Pi's 7" touchscreen display, creating an ideal form factor for countertop use. The interface prioritizes readability and ease of navigation, ensuring that recipes can be accessed quickly even with wet or flour-covered hands.
Technical Structure
All source code is stored in src/pi_chef
. The application follows a clean separation of concerns with distinct components handling different aspects of functionality:
- Data Management:
data_controller.py
handles all database interactions and recipe data processing - Database Storage: All recipes are stored in
recipes.db
, a lightweight SQLite3 database - Web Application:
pi_chef_webapp.py
launches and maintains the Flask server - Frontend Assets: Templates and static files provide the user interface and styling
Kiosk Workflow
Since this is designed as a Raspberry Pi kiosk application, the entire system is configured to launch automatically upon powering up the Raspberry Pi. This creates a seamless, appliance-like experience where users simply power on the device and immediately have access to their recipe collection.
The startup process is handled through a custom bash script that serves as the final step in the Pi's boot sequence. This script performs two critical functions:
- Launch the webapp: Starts the Flask application server
- Open kiosk browser: Launches Chromium in "kiosk" mode with no borders or menu bars visible
When the application launches, data_controller.py
is imported and retrieves all recipes from recipes.db
. These recipes are then passed to the Flask app and rendered within the template using JavaScript, creating a dynamic and responsive user interface.
User Experience Design
The interface is specifically optimized for kitchen use, with several key design considerations:
- Touch-friendly controls: Large buttons and touch targets accommodate use with wet or gloved hands
- Clear typography: Readable fonts and sizing ensure recipes can be followed from a distance
- Simple navigation: Intuitive menu structure allows quick access to different recipes
- Responsive layout: Content adapts to the Raspberry Pi's 7" display dimensions

Future Development
Pi Chef is an ongoing project with several key features currently in development. The roadmap includes both functionality improvements and user experience enhancements:
Planned Features
- Recipe Management: The ability to add new recipes directly through the application interface, eliminating the need for database manipulation
- Edit Capabilities: Full editing and deletion functionality for existing recipes, allowing users to refine their collection over time
- Enhanced Design: A more attractive and modern recipe view to replace the current barebones interface
- Search Functionality: Quick recipe search and filtering capabilities for larger recipe collections
- Timer Integration: Built-in cooking timers that sync with recipe steps
Technical Improvements
- Database Schema: Enhanced recipe storage with ingredient categorization and nutritional information
- Backup System: Automatic recipe backup and sync capabilities
- Performance Optimization: Faster loading times and smoother navigation on Raspberry Pi hardware
This project demonstrates the practical application of web technologies in creating specialized kitchen appliances, showing how a simple Raspberry Pi can be transformed into a useful culinary tool that enhances the cooking experience.