JoyCart

A pretend Android shop. Share an Amazon or Flipkart link, tap Buy Now, and enjoy the order — nothing is charged or shipped.

Android 8.0+. Educational / individual use only. Checkout is fake — disclaimer.

JoyCart home with a paste-link field and pretend product deals

Product

Screens

Paste or share a product, fake-buy it, pick a pretend card, and watch the order land — all on the phone.

Home
Product
Checkout
Order placed
Cart

Everyday use

Use cases

Built for the feeling of buying from a shared link — not for real checkout.

Engineering

How it’s built

The Android source stays private. This public repo only holds the showcase, license, disclaimer, and APK releases.

Private

navforu/fake-ecomm-droid

Kotlin / Jetpack Compose app, unit tests, version.properties, and the release.yml workflow that publishes here.

Public

navforu/joycart-app

This site (GitHub Pages), screenshots, MIT license, disclaimer, and every JoyCart-x.y.z.n.apk on Releases — overwritten from public/ on each successful publish.

  1. Push to private main

    CI bumps the version, runs JVM unit tests, and builds a release APK.

  2. Publish only if tests and build succeed

    Pull requests stop after test/build. On main, a PUBLIC_REPO_TOKEN checks out joycart-app, syncs the private repo’s public/ folder with rsync, and pushes.

  3. GitHub Release + APK

    CI creates tag vMAJOR.MINOR.PATCH.BUILD on the public repo, attaches JoyCart-….apk and a .sha256 checksum, then commits the new version.properties back to the private repo.

Versions handle themselves

Releases use MAJOR.MINOR.PATCH.BUILD. Every publish increments the last digit unless you flip a bump flag before pushing.

# version.properties in the private repo
VERSION=0.0.0.4
BUMP_MAJOR=false  → 1.0.0.0
BUMP_MINOR=false  → 0.1.0.0
BUMP_PATCH=false  → 0.0.1.0
# all false → regular build: 0.0.0.4 → 0.0.0.5
# past .99 carries left: 0.0.0.99 → 0.0.1.0
# versionCode = M·1e6 + N·1e4 + P·100 + B (always increases)