Skip to content

Flexi-Store is an Ecommerce Application developed using Compose Multiplatform (Android,iOS,Desktop & Web). It's uses the Custom Server for it.

License

Notifications You must be signed in to change notification settings

KhubaibKhan4/Flexi-Store-KMP

Flexi-Store-KMP

Flexi-Store-KMP

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.

Supported Features

  • 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

Future Planning Features

  • 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

Technologies Used

Jetpack Compose Dependencies

  • androidx-activityCompose
  • androidx-testManifest
  • androidx-junit4

Navigation

  • voyager-navigator

Logging

  • napier

Kotlin Coroutines

  • kotlinx-coroutines-core
  • kotlinx-coroutines-android
  • kotlinx-coroutines-swing
  • kotlinx-coroutines-test

MVVM Architecture

  • Official LifeCycle

Networking

  • 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

Serialization

  • kotlinx-serialization-json

Date and Time

  • kotlinx-datetime

Dependency Injection

  • koin-core
  • koin-annotations

Image Handling

  • kamel-image

Material Design

  • screen-size

Database

  • sqlDelight-driver-sqlite
  • sqlDelight-driver-android
  • sqlDelight-driver-native
  • sqlDelight-driver-js

Native Notifications

  • 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.

đź’° You can help me by Donating

BuyMeACoffee PayPal Patreon Ko-Fi

Mobile Screen Shots

Screenshot 1 Screenshot 2 Screenshot 3
Screenshot 4 Screenshot 5 Screenshot 6
Screenshot 7 Screenshot 8 Screenshot 9
Screenshot 10 Screenshot 11 Screenshot 12
Screenshot 13 Screenshot 14 Screenshot 15
Screenshot 16 Screenshot 17 Screenshot 18
Screenshot 19 Screenshot 20 Screenshot 21
Screenshot 22 Screenshot 23 Screenshot 24
--- --- ---
Screenshot 25 Screenshot 26 Screenshot 27
Screenshot 28 Screenshot 29 Screenshot 45
Screenshot 46 Screenshot 47 Screenshot 48
Screenshot 49 Screenshot 62 Screenshot 63
Screenshot 64 Screenshot 65 Screenshot 66
Screenshot 67 Screenshot 68 Screenshot 69
Screenshot 70 Screenshot 71 Screenshot 72
Screenshot 73 Screenshot 74 Screenshot 74

iOS Screen Shots

Desktop Screen Shots

Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4
Screenshot 5
Screenshot 6
Screenshot 7
Screenshot 8
Screenshot 9
Screenshot 10
Screenshot 11
Screenshot 12
Screenshot 13
Screenshot 14
Screenshot 15
Screenshot 16
Screenshot 17
Screenshot 18
Screenshot 19
Screenshot 20
Screenshot 21
Screenshot 22
Screenshot 23
Screenshot 24
Screenshot 25
Screenshot 26
Screenshot 27
Screenshot 28
Screenshot 29
Screenshot 30
Screenshot 31
Screenshot 32
Screenshot 33
Screenshot 34
Screenshot 35
Screenshot 36
Screenshot 37
Screenshot 38
Screenshot 39
Screenshot 40

Flexi-Store Backend

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

Flexi-Store Admin is also developed using Compose Multiplatform. You can find the Flexi-Store Admin repository here.

Before running!

  • 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

Android

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 in composeApp/build/outputs/apk/debug/composeApp-debug.apk Run android simulator UI tests: ./gradlew :composeApp:pixel5Check

Desktop

Run the desktop application: ./gradlew :composeApp:run Run desktop UI tests: ./gradlew :composeApp:jvmTest

iOS

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

Experimental Browser (JS)

Run the browser application: ./gradlew :composeApp:jsBrowserDevelopmentRun --continue Run browser UI tests: ./gradlew :composeApp:jsBrowserTest

Report Issues

If you find any issue or wanted to have certain features, please report them in the issues tab or in the discussion tab.