Flexi Store KMP is a Compose Multiplatform Project that uses the Custom Ktor Server as a Backend & Supports Android, iOS, Web & Desktop. It contains a Custom Backend Server with a Admin Dashboard. Admin Dashboard help us to track orders, delivery status, payments sections, promotion sections and much more.
- 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:
1.9.3
- androidx-testManifest:
1.7.5
- androidx-junit4:
1.7.5
- voyager-navigator:
1.1.0-beta03
- napier:
2.7.1
- kotlinx-coroutines-core:
2.0.20
- kotlinx-coroutines-android:
2.0.20
- kotlinx-coroutines-swing:
2.0.20
- kotlinx-coroutines-test:
2.0.20
- Official LifeCycle:
2.8.3
- ktor-core:
3.0.1
- ktor-client-darwin:
3.0.1
- ktor-client-okhttp:
3.0.1
- ktor-client-js:
3.0.1
- ktor-content-negotiation:
3.0.1
- ktor-serialization-json:
3.0.1
- ktor-logging:
3.0.1
- ktor-client-curl:
3.0.1
- ktor-client-winhttp:
3.0.1
- kotlinx-serialization-json:
1.7.3
- kotlinx-datetime:
0.6.1
- koin-core:
4.0.0
- koin-annotations:
2.0.0-Beta1
- kamel-image:
0.9.5
- screen-size:
0.5.0
- sqlDelight-driver-sqlite:
2.0.2
- sqlDelight-driver-android:
2.0.2
- sqlDelight-driver-native:
2.0.2
- sqlDelight-driver-js:
2.0.2
- alert-kmp:
1.0.5
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.