Jayas Piya
Full-Stack Development Vue Kotlin Android

E-commerce: Everest Book Store

Everest Book Store combines a Vue storefront, an Express and MongoDB API, and native Kotlin applications for Android and WearOS, with catalog management, ordering, reviews, and processed book-cover imagery.

E-commerce: Everest Book Store

Book Commerce Across Web and Android

Everest Book Store connects a Vue 3 storefront and a native Kotlin Android application through a shared Express API. The system supports book discovery, customer accounts, carts, orders, and reviews, alongside a browser-based administration interface. A separate WearOS module presents customer profile information and account activity counts.

The implementation spans three repositories: the web application, the backend API, and the Android and WearOS applications.

The Engineering Challenge

A book commerce workflow needs to connect catalog browsing with customer activity and store administration. Book details and cover images must reach both web and mobile interfaces, while accounts, carts, reviews, and orders need a shared data foundation.

The project separates client presentation from backend responsibilities. The API manages persistent records and authentication; the web and Android applications consume those endpoints through interfaces suited to their platforms.

Application Architecture

ComponentTechnologiesResponsibility
Web storefront and administrationVue 3, Vue Router, Vuex, AxiosPresents catalog browsing, customer workflows, and store management views.
Shared REST APINode.js, ExpressHandles requests for books, users, store accounts, reviews, and orders.
Data persistenceMongoDB, MongooseModels and stores the commerce entities and their relationships.
AuthenticationJSON Web Tokens, bcryptjsSupports account sign-in, password hashing, and customer and store route guards.
Image processingCloudinaryHosts profile images and derives front, back, and spine views from book-cover uploads.
Android applicationKotlin, Retrofit, coroutines, ViewModel, LiveData, RoomConnects native screens to the API and maintains a local book catalog.
WearOS applicationKotlin, RetrofitAuthenticates customers and displays a compact profile summary.

Catalog Discovery and Customer Workflows

The Vue application provides catalog browsing and keyword search, book detail pages, customer registration and sign-in, profile editing, carts, and order history. Review components allow customers to submit ratings and written feedback, while recently viewed books provide a path back to earlier browsing activity.

The API models books, customers, store accounts, reviews, and orders with Mongoose. Order records contain book references, quantities, prices, totals, and a status of pending, completed, or canceled. The order creation workflow calculates total quantity and amount from submitted items, saves the order, and clears the customer’s cart.

Customer and store authentication use separate route guards. This distinguishes customer actions, such as placing orders, from store actions, such as editing catalog entries or updating order status.

Store Administration

The web application includes an administration dashboard for reviewing orders and their customer, item, quantity, price, and status information. Catalog tools support adding and editing books, uploading covers, and locating books without cover imagery. API endpoints also support book deletion and order completion or cancellation.

These views use HTTP requests to the shared API, connecting store management with the same records used by the customer applications.

From Cover Uploads to Book Presentation

The backend uploads book-cover imagery to Cloudinary and generates transformation URLs for front, back, and spine crops. The Vue book mockup combines those images with CSS perspective and rotation to create a book-shaped preview that turns on hover.

This workflow connects backend image processing with a specific presentation feature: a single uploaded image supplies the separate surfaces used by the web preview. Profile picture uploads use the same image service through a separate upload function.

Native Android Data Flow

The Kotlin application implements book discovery, detail views, reviews, cart operations, ordering, and account management. Retrofit service interfaces describe API requests, repository classes coordinate data access, and coroutines move network and database work off the main thread.

For catalog loading, the book repository writes successfully fetched records to Room and reads the local database for display. It also attempts to return stored records when a network request fails. ViewModel and LiveData connect this repository output to the interface, providing a local data path for previously fetched books.

Maps, Sensors, and WearOS

A Google Maps screen marks two configured Everest Books locations and provides map zoom controls. The Android code also includes sensor event handlers for proximity-based cart and order actions, an accelerometer-based shake shortcut to the map, and gyroscope-based navigation to the profile.

The WearOS module has its own login and profile screens. It retrieves the customer profile and displays the customer’s name, address, phone number, profile image, total orders, and total reviews in a compact wearable view.

Deliverables

The project delivers a Vue commerce and administration application, an Express/MongoDB backend, a native Android client with local catalog persistence, and a WearOS profile application. The implementation demonstrates how shared API contracts, persistent commerce data, image transformations, and native device features connect across a multi-platform application.

Explore the Implementation