Flexi Store KMP is a Compose Multiplatform Project that uses the Custom Ktor Server as a Backend & Supports Android, iOS, Web & Desktop. Basically, It's an Amazon Clone & Will contains all the features in the future including the Seller Central too where users can register and sell their products to earn.
- User Authentication
- Payment Integration
- Product Recommendations
- Advanced Search
- Order Tracking
- Responsive Design
- Push Notifications
- Social Media Integration
- Wishlist and Favorites
- Discounts and Coupons
- Customer Support
- Product Reviews and Ratings
- Inventory Management
- Analytics and Reporting
- Seller Central
- Multi-language Support
- Social Media Integration
- AI-Powered Recommendations
- Voice Search
- Augmented Reality
- Blockchain Integration
- Subscription Services
- Offline Mode
- Expanded Payment Options
- Community Forums
- Gamification
- Ai Scrapping
- Deployment on Heroku or Google Cloud
- Deployment on Appstore and Playstore.
- Server Driven UI implementation
- androidx-activityCompose
- androidx-testManifest
- androidx-junit4
- voyager-navigator
- napier
- kotlinx-coroutines-core
- kotlinx-coroutines-android
- kotlinx-coroutines-swing
- kotlinx-coroutines-test
- Official LifeCycle
- ktor-core
- ktor-client-darwin
- ktor-client-okhttp
- ktor-client-js
- ktor-content-negotiation
- ktor-serialization-json
- ktor-logging
- ktor-client-curl
- ktor-client-winhttp
- kotlinx-serialization-json
- kotlinx-datetime
- koin-core
- koin-annotations
- kamel-image
- screen-size
- sqlDelight-driver-sqlite
- sqlDelight-driver-android
- sqlDelight-driver-native
- sqlDelight-driver-js
- alert-kmp
These technologies are utilized to develop a robust and feature-rich Kotlin Multiplatform Ecommerce application that supports Android, iOS, Web, and Desktop platforms.
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
--- | --- | --- |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Flexi-Store is developed using Ktor and is mandatory for the backend of the Flexi-Store-KMP. You can find the Flexi-Store server repository here.
Flexi-Store Admin is also developed using Compose Multiplatform. You can find the Flexi-Store Admin repository here.
- check your system with KDoctor
- install JDK 17 or higher on your machine
- add
local.properties
file to the project root and set a path to Android SDK there
To run the application on android device/emulator:
- open project in Android Studio and run imported android run configuration
To build the application bundle:
- run
./gradlew :composeApp:assembleDebug
- find
.apk
file incomposeApp/build/outputs/apk/debug/composeApp-debug.apk
Run android simulator UI tests:./gradlew :composeApp:pixel5Check
Run the desktop application: ./gradlew :composeApp:run
Run desktop UI tests: ./gradlew :composeApp:jvmTest
To run the application on iPhone device/simulator:
- Open
iosApp/iosApp.xcproject
in Xcode and run standard configuration - Or use Kotlin Multiplatform Mobile plugin for Android Studio
Run iOS simulator UI tests:
./gradlew :composeApp:iosSimulatorArm64Test
Run the browser application: ./gradlew :composeApp:jsBrowserDevelopmentRun --continue
Run browser UI tests: ./gradlew :composeApp:jsBrowserTest
If you find any issue or wanted to have certain features, please report them in the issues tab or in the discussion tab.