Description
Build a table booking app for a restaurant, cafe or restaurant group. TableTime lets guests find a restaurant, pick a date, time slot and party size, choose a table on an interactive floor plan and confirm in a few taps. Native Kotlin and Jetpack Compose, MVVM, Room and DataStore, with the availability logic isolated so you can connect your own API.

Features
- Explore: search by name, cuisine or mood, cuisine chips, sort by rating, distance or price
- 6 demo restaurants with rating, price level, address, opening hours, tags and menu highlights
- Restaurant details with open now status, capacity, menu and favorite button
- Booking: 14 day date picker, guests stepper (1 to 12), 30 minute time slots generated from opening hours
- Interactive floor plan with zones (main hall, window, terrace, bar), round and square tables, free, taken and too small states
- Best table auto selected for the party size, double booking protection
- Confirmation with name and phone validation and special request
- Success screen with booking code
- My bookings: Upcoming and Past and cancelled tabs, cancel with confirmation
- Favorites, profile with saved contact details, light, dark or system theme, delete all data
- Unit tests and Paparazzi screenshot tests
Tech stack
- Kotlin 1.9, Jetpack Compose (BOM 2024.06), Material 3
- Navigation Compose with bottom bar
- Room 2.6 with KSP
- Jetpack DataStore Preferences
- ViewModel + StateFlow (MVVM)
- Gradle Kotlin DSL, AGP 8.5, minSdk 24, targetSdk 34
Requirements
- Android Studio Koala (2024.1) or newer
- JDK 17
- Android SDK 34, minSdk 24 (Android 7.0+)
How to install and run
- Unzip the archive and open the folder in Android Studio
- Wait for Gradle sync and press Run
- Or build from the command line with
./gradlew assembleDebug - Run unit tests with
./gradlew testDebugUnitTest, render screenshots with./gradlew recordPaparazziDebug
How to rebrand
- App name:
res/values/strings.xml - Colors:
ui/theme/Theme.kt(BrandPrimary, BrandPrimaryDark, BrandGold, table colors) - Icon:
res/drawable/ic_launcher_foreground.xml,res/values/ic_launcher_background.xml,res/mipmap-*or File > New > Image Asset - Package id:
applicationIdandnamespaceinapp/build.gradle.kts, then Refactor > Rename (current: com.appforge.tabletime) - Restaurants, menus and floor plans:
data/Catalog.kt - Booking rules (slot step, booking length, last call, max guests):
data/Availability.kt
What’s included
- Full Android Studio project with Kotlin source code and Gradle wrapper
- Unit tests and Paparazzi screenshot tests
- README.md with setup, rebranding and project structure
- LICENSE file
- Screenshots folder
Screenshots

License
Commercial license: use the source code in one end product (one app) for yourself or one client, free or paid. Reselling or redistributing the source code as a template is not allowed. Full text in the LICENSE file.









Reviews
There are no reviews yet.