/Flexi-Store-KMP

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

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

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

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: 1.9.3
  • androidx-testManifest:1.7.5
  • androidx-junit4:1.7.5

Navigation

  • voyager-navigator:1.1.0-beta03

Logging

  • napier:2.7.1

Kotlin Coroutines

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

MVVM Architecture

  • Official LifeCycle: 2.8.3

Networking

  • 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

Serialization

  • kotlinx-serialization-json:1.7.3

Date and Time

  • kotlinx-datetime:0.6.1

Dependency Injection

  • koin-core:4.0.0
  • koin-annotations:2.0.0-Beta1

Image Handling

  • kamel-image:0.9.5

Material Design

  • screen-size:0.5.0

Database

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

Native Notifications

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

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

Star History

Star History Chart

Stargazers

Stargazers repo roster for @KhubaibKhan4/Flexi-Store-KMP

Forkers

Forkers repo roster for @KhubaibKhan4/Flexi-Store-KMP

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.