SEA Catering is a modern daily catering service that provides a variety of healthy, delicious, and nutritious food packages tailored to customer needs. This service is designed to make it easy for customers to meet their daily consumption needs, whether for individuals, families, or companies.
SEA Catering uses a subscription model with flexible features such as choices of food types, delivery days, and subscription pauses. Its digital system allows users to order, manage, and monitor their subscription status directly from the application, making the catering experience more practical, transparent, and personal.
Login/register with email.
| Login | Register |
|---|---|
![]() |
![]() |
Intuitive interface for exploring catering packages.
| Home |
|---|
![]() |
Provide reviews and ratings for the service.
Form to select and buy packages.
View statistics such as new subscriptions and stuff.
- Primary Language: Kotlin
- Architecture: Kotlin Multiplatform Mobile (KMM), MVVM (Model-View-ViewModel)
- UI: Jetpack Compose for Multiplatform (Android & iOS)
- Navigation: Jetpack Navigation Compose (for Compose-based UI)
- Authentication & Database: Firebase Auth & Firestore (via KMP libraries)
- Dependency Injection: Koin
- Networking: Ktor HTTP Client
- Async Operations: Kotlin Coroutines
For Android:
- Android Studio (latest stable version, e.g., Koala | 2024.1.1 or newer)
- JDK 17 or newer
- Android SDK (minimum API 24)
- Android device or Emulator with API 24 or higher
For iOS:
- macOS machine
- Xcode (latest stable version)
- CocoaPods (if not managed by KMM plugin, usually handled automatically)
- iOS device or Simulator
git clone https://github.com/laetuz/SEA-Catering.git
cd SEA-CateringAndroid (with Android Studio):
- Open the project in Android Studio.
- Let Android Studio sync the project with Gradle files.
- Select an Android device or emulator from the target devices dropdown.
- Click the "Run" button (
βΆοΈ ).
iOS (with Xcode):
- Open the
iosApp/iosApp.xcworkspacefile in Xcode. (Or, if using Fleet or Android Studio with KMM plugin, you might be able to run directly). - Select an iOS device or simulator.
- Click the "Run" button (
βΆοΈ ).
- Note: The first build might take longer as it needs to compile the shared Kotlin module.
- If you encounter issues with dependencies, ensure CocoaPods are installed and try running
pod installin theiosAppdirectory from your terminal, then reopen Xcode. However, the KMM Gradle plugin usually handles this.
Android Emulator (with Android Studio):
- In Android Studio, open the Device Manager (View > Tool Windows > Device Manager).
- Click "Create Device".
- Choose a device definition (e.g., Pixel 6).
- Select a system image (recommendation: Android 13.0 - API 33 or newer).
- Complete the setup and launch the emulator.
iOS Simulator (with Xcode):
- In Xcode, go to Window > Devices and Simulators.
- You can manage existing simulators or add new ones if needed.
- Select the desired simulator from the scheme's target dropdown before running.
- Email:
[email protected] - Password:
kingkong
- Email:
[email protected] - Password:
Admin123!
The project is organized into the following main modules:
.
βββ composeApp/ # Shared Compose Multiplatform UI and Android application
β βββ src/
β β βββ androidMain/ # Android-specific code and resources
β β βββ commonMain/ # Common UI code shared between Android and iOS
β β βββ iosMain/ # iOS-specific code (rarely used for UI in Compose MP)
β βββ build.gradle.kts
βββ iosApp/ # iOS application project
β βββ iosApp/ # Main iOS application code (SwiftUI, UIKit)
β βββ build.gradle.kts # (This is a placeholder, iOS uses Xcode build system primarily)
βββ core/ # Core modules shared across features
β βββ domain/ # Core domain logic and models
β βββ firebase/ # Firebase integration
β βββ ktor/ # Ktor HTTP client setup
β βββ routes/ # Navigation routes and definitions
β βββ ui-shared/ # Shared UI components or utilities (non-Compose specific)
βββ feature/ # Feature modules
β βββ auth/ # Authentication feature
β βββ profile/ # User profile feature
βββ build.gradle.kts # Root project build script
βββ settings.gradle.kts # Project settings, module includes
βββ gradle/ # Gradle wrapper and version catalog (libs.versions.toml)
Key Directories:
composeApp/src/commonMain: This is where most of the shared UI logic resides, written in Kotlin using Jetpack Compose for Multiplatform.core/domain/src/commonMain: Contains the core business logic, data models, and use cases, shared across all platforms and features.feature/*/src/commonMain: Each feature module (e.g.,auth,profile) has its owncommonMainfor feature-specific logic and ViewModels.composeApp/src/androidMain: Android-specific implementations,AndroidManifest.xml, resources, and the main AndroidActivity.iosApp/: The Xcode project for the iOS application. It consumes the shared Kotlin module built fromcomposeAppand othercommonMainsources.
Email: [email protected] GitHub: laetuz


