EasyChef is an Android app that helps users generate meal ideas from what they already have in their pantry, with flows for pantry management and diet/cuisine preferences.
-
Platform: Android (Kotlin, Gradle Kotlin DSL)
-
UI: Jetpack Compose + Material 3
- Main screens:
Login,Home,Pantry,Preferences - Navigation handled by
AppNavHost
- Main screens:
-
DI: Hilt (
EasyChefApplication,SupabaseModule) -
Data Layer:
- Repositories:
AuthRepository,UserProfileRepository - Implementations:
SupabaseAuthRepository,SupabaseUserProfileRepository - Models:
UserProfile,PantryItem,Preferences
- Repositories:
-
Backend: Supabase (Auth + Postgres)
-
Testing: JUnit + Hilt Instrumentation (
SupabaseConnectionTest)
CREATE TABLE public.user_profiles (
user_id uuid NOT NULL,
user_name text,
pantry ARRAY,
diet text,
cuisines ARRAY,
updated_date timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT user_profiles_pkey PRIMARY KEY (user_id),
CONSTRAINT user_profiles_user_id_fkey FOREIGN KEY (user_id) REFERENCES auth.users(id)
);-
Clone the repo
git clone https://github.com/Arjun-S19/EasyChef.git cd EasyChef -
Open in Android Studio
-
Add Supabase credentials to
local.properties:SUPABASE_URL=YOUR_SUPABASE_URL SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
-
Sync Gradle (
File → Sync Project with Gradle Files)
- Select a device/emulator
- Run the
appconfiguration
./gradlew assembleDebug
./gradlew installDebug./gradlew testEnsure Supabase includes a test_table, then run:
./gradlew connectedAndroidTest