EasyEat simplifies meal planning by offering a centralized recipe database where users can add, search and manage recipes collaboratively. With secure user authentication, it allows easy access and management, while future updates will introduce admin-only recipe deletion to maintain database integrity. EasyEat is built with Python, Streamlit, and uses Google Sheets for data storage, with API access managed through Google Cloud Console. The app is deployed on Streamlit Cloud for quick accessibility.
Explore the application with a demo account! Use the demo credentials provided below to log in.
Click here to access the demo.
Demo Credentials:
# Username
demo
# Password
P@ssw0rd123
Note: Not all features are available in the demo account.
EasyEat includes an admin panel available to users with the Admin role. The panel provides a user-friendly interface to manage the recipe database and user accounts. Below are the key features:
- Delete Recipes: Admins can permanently remove recipes from the database, ensuring content management is controlled.
- Delete Users: Admins have the ability to remove users from the platform if necessary.
- Change User Roles: Admins can promote or demote users, assigning or removing the Admin role based on need.
Here's a preview of the admin panel:
- Python
- Streamlit
- Pandas
- Google Sheets (Database)
- Google Cloud Console (API Access Management)
- Python & Streamlit Development: Gained deeper experience building web applications with Streamlit and integrating third-party libraries.
- Google Cloud & Sheets Integration: Learned how to manage API access via Google Cloud Console and integrate Google Sheets as a lightweight database solution.
- Authentication in Streamlit: Integrated secure user authentication using the Streamlit-Authenticator module, improving my understanding of user management.
- Collaborative Platform Development: Built a system that handles multiple users interacting with the same recipe database, which helped me understand collaborative workflows in web apps.
- User-specific Recipe Collections: Allow users to create their own collections or favorite recipes.
- Google Sheets API Rate Limits: The app may experience occasional delays or errors when multiple users interact with the database simultaneously, due to Google Sheets API rate limits. This issue resolves automatically after a short period. An improvement to optimize API usage is planned in a future release.
- Streamlit Cloud: For deploying and hosting the application.
- Google Cloud Console: For managing API access to Google Sheets.
My understanding of building web apps with Streamlit and integrating external APIs was greatly improved by various resources:
To run the project in your local environment, follow these steps:
-
Clone the Repository:
git clone https://github.com/maxitech/easy_eat.git
-
Create a Virtual Environment:
cd easy_eat python -m venv venv
-
Activate the Virtual Environment:
- Windows:
venv\Scripts\activate
- macOS/Linux:
source venv/bin/activate
-
Install the Required Dependencies: Install all necessary Python packages using
pip
:pip install -r requirements.txt
-
Set Up Google Authentication:
- Inside the
src
folder, create a.streamlit
directory:
mkdir -p src/.streamlit
- Within this directory, create a
secrets.toml
file and include your Google authentication credentials:
[google] application_credentials = '''{your_downloaded_credentials.json}''' db_credentials = '''{your_downloaded_db_credentials.json}'''
- Inside the
-
Navigate to the
src
Directory:cd src
-
Start the Local Development Server: Run the Streamlit application:
streamlit run main.py
-
Open http://localhost:5801 (or the address shown in your console) in your web browser to view the app.