Skip to content

alfredang/potluckapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Potluck β€” Native iOS App 🌈πŸ₯„

Swift SwiftUI Xcode Platform App Store

The native SwiftUI iPhone app for Potluck β€” the Singapore home-cook marketplace at potluckhub.io connecting home chefs with food lovers. Discover talented local cooks, browse their menus, and book authentic home-cooked dining experiences.

Companion to the Potluck web platform β€” the home-cook marketplace site potluckhub.io. This app talks directly to the production Potluck API (api.potluckhub.io) β€” no mock data.

On the App Store

PotLuckHub on the App Store

Screenshots

Explore Dishes Chef Profile Sign In
Explore Dishes Chef Profile

Features

  • Explore home chefs β€” featured carousel, full directory, search, and nine cuisine filters (Chinese, Western, Thai, Japanese, Korean, Malay, Indian, Halal, Vegetarian)
  • Browse dishes β€” a photo-rich grid of menus across every chef, with prices and ratings
  • Chef profiles β€” bio, specialties, social links, full menu, and verified diner reviews
  • Booking flow β€” pick a date, guest count and special requests with a live price breakdown (incl. service fee)
  • Accounts β€” register / sign in against the live API, with tokens stored securely in the Keychain
  • My bookings β€” track requested and confirmed dining experiences

Tech Stack

Area Choice
UI SwiftUI (iOS 17+), NavigationStack, TabView
Networking async/await URLSession, Codable, typed APIError
Auth JWT access/refresh tokens persisted in the Keychain
State ObservableObject view models per screen
Project gen XcodeGen (project.yml)
Backend Potluck REST API β€” https://api.potluckhub.io/api/v1

Architecture

Potluck/
β”œβ”€β”€ App/            # @main entry, Theme (brand palette), RootView (tabs)
β”œβ”€β”€ Networking/     # APIClient, PotluckService (endpoints), Codable Models
β”œβ”€β”€ Auth/           # AuthManager (session) + Keychain wrapper
β”œβ”€β”€ Components/     # Reusable views (RemoteImage, RatingLabel, Pill, states…)
└── Features/
    β”œβ”€β”€ Explore/    # Chef discovery + chef detail
    β”œβ”€β”€ Dishes/     # Menu grid + dish detail
    β”œβ”€β”€ Booking/    # Booking request sheet
    β”œβ”€β”€ Bookings/   # My bookings
    └── Profile/    # Auth sheet + profile

The API wraps every response in a { success, data, pagination? } envelope; APIClient unwraps it generically. Prices are stored as integer cents and ratings sometimes arrive as strings and sometimes as numbers β€” a FlexNumber decoder handles both.

Getting Started

Requires Xcode 16+ and XcodeGen (brew install xcodegen).

# Generate the Xcode project from project.yml
xcodegen generate

# Open and run
open Potluck.xcodeproj

The app points at the production API out of the box, so chefs and dishes load immediately.

Build & Distribution

# Archive
xcodebuild archive -project Potluck.xcodeproj -scheme Potluck \
  -configuration Release -destination 'generic/platform=iOS' \
  -archivePath build/Potluck.xcarchive

# Export a signed App Store IPA
xcodebuild -exportArchive -archivePath build/Potluck.xcarchive \
  -exportOptionsPlist ExportOptions.plist -exportPath build/export

# Upload to App Store Connect
xcrun altool --upload-app -f build/export/Potluck.ipa -t ios \
  --apiKey <KEY_ID> --apiIssuer <ISSUER_ID>
  • Bundle ID: io.potluckhub.app
  • Version: 1.0

License

MIT

About

πŸ“² Now on the App Store β†’ apps.apple.com/app/id6759842391 β€” Native SwiftUI iPhone app for Potluck (potluckhub.io), the Singapore home-cook marketplace. Discover home chefs, browse dishes, and book home-cooked dining. Talks to the live Potluck API.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages