E-commerce App Project Overview
What you will build
In this course you build KartEasy, a complete shopping app like a small Flipkart or Meesho. It has three parts that you write yourself, line by line:
- A MySQL database with 14 tables (users, products, cart, orders …).
- A PHP REST API that the app calls, plus an admin panel where the shop owner adds products and ships orders.
- A native Android app in Kotlin + XML with a modern Material 3 design.
The shop comes with real sample data — 16 products in 6 categories, 3 home banners and 2 coupons — so the app looks complete the first time you run it:

Feature list
| Area | Features |
|---|---|
| Account | Splash, onboarding, register, login, logout, edit profile, change password, dark mode |
| Browse | Home banners (auto-slide), categories, featured, top deals, new arrivals, search, 6 sort options, price filter, endless scrolling |
| Product | Image gallery, price / MRP / % off, stock warning, quantity, reviews, similar products, share |
| Buy | Wishlist, cart with − / +, swipe to remove + Undo, free-delivery progress, coupons, saved addresses, Cash on Delivery |
| After buying | Order success screen, notification, order list, tracking timeline, cancel, rate & review |
| Admin panel | Dashboard, orders + status, products with image upload, categories, banners, coupons, customers |
| Quality | Token login, hashed passwords, transactions (no overselling), CSRF, offline cache, tablet layouts, R8 release |
How the parts talk to each other
The Android app never touches the database directly. It sends HTTP requests to the PHP API, the API checks everything (login, stock, prices) and talks to MySQL, then answers in JSON. The admin panel uses the same database from the browser.
Inside the app we use the MVVM pattern so the code stays organised:
Tech stack
Backend (server)
- PHP 7.2+ (also PHP 8.x)
- MySQL 5.7+ / MariaDB with PDO
- Token login (Bearer), password_hash
- Admin panel: PHP sessions + CSRF
- Runs on Hostinger, cPanel, XAMPP
Android app
- Kotlin 2.0, XML layouts, Material 3
- ViewModel + StateFlow + Coroutines
- Retrofit + Gson + OkHttp cache
- Navigation component, Glide, DataStore
- minSdk 26, targetSdk 35
Project folders
📁 KartEasy-Project/ 📁 backend/ ← upload to hosting (public_html/karteasy) database.sql tables + 16 sample products 📁 includes/ config.php, db.php, helpers.php, cart.php … 📁 api/ home.php, products.php, product.php … 📁 auth/ cart/ wishlist/ address/ coupons/ orders/ reviews/ 📁 admin/ admin panel (login, orders, products …) 📁 uploads/ product, category and banner images 📁 android/KartEasy/ ← open in Android Studio 📁 app/src/main/java/com/codingeasily/karteasy/ 📁 data/ api/ model/ repo/ session/ 📁 ui/ home/ product/ cart/ checkout/ orders/ account/ … 📁 util/ notify/ 📁 app/src/main/res/ layouts, drawables, navigation, values
Download the complete project from the course page (button Download App + API Code). Every file shown in these lessons is exactly the file inside the ZIP.
Tools you need
- 1Android Studio (Ladybug or newer) — see the setup lesson
- 2PHP 7.2+ and MySQL: install XAMPP (Windows) or use the PHP / MySQL that comes with your OS
- 3A code editor for PHP (VS Code works well)
- 4Postman or Thunder Client to test the API (optional — we also test with curl)
- 5Later: hosting with PHP + MySQL (for example Hostinger) to put the API online
You should know basic Android views, RecyclerView, fragments and Retrofit. All of these are taught in the free Android (Kotlin) course. For PHP basics see the PHP tutorial.
Course plan
Demo logins
| Where | Password | |
|---|---|---|
| Android app (customer) | test@karteasy.in | Test@123 |
| Admin panel | admin@karteasy.in | Admin@123 |
These passwords are public because they are in this tutorial. Change the admin password before you put the backend online — the admin panel lesson shows how.
