Skip to content

About

CSE-3120 | Software Engineering and Information Systems Laboratory Android studio project with Factory , SingleTon , adapter , Observer Design pattern

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

Β 

History

55 Commits

Folders and files

Repository files navigation

PharmaPlus

An e-commerce pharmacy management app for Android β€” order medicines, manage a cart, check out, and run the whole store from an admin panel.

Built as a part of CSE 3120 – Software Engineering & Information Systems project in Android Studio Jellyfish (Java).

Try it yourself

You don't need Android Studio to take it for a spin β€” pick whichever is easier:

Live Demo Download APK

  • Run it in the browser β€” the Appetize.io link, no install, just click and wait a few seconds for the emulator to boot
  • Install the real thing β€” download the APK and sideload it on any Android device running Android 9 (Pie) or newer

πŸ”‘ Login credentials β€” the admin account unlocks product management, the user account is the normal shopping experience:

Role Email / Username Password
πŸ› οΈ Admin admin admin
πŸ›’ User test@gmail.com test@123

Log in as the user to browse, add to cart and place an order β€” then log in as admin to add, edit or remove products and watch the catalog change.


πŸ“– About the project

PharmaPlus is a two-sided pharmacy app. On one side, customers can browse medicines and health products by category, open a product to read the details, drop items into a cart, save a delivery address and place an order. On the other side, an admin panel lets the store owner add new products (with images), modify existing ones and delete what's out of stock β€” all backed by Firebase so changes show up live.

It started as a coursework project, but we treated it like a real product: proper architecture, design patterns where they actually made sense, and an automated test + build pipeline on GitHub.

✨ Features

For customers

  • Sign up / log in with Firebase Authentication
  • Browse products by category β€” Medication, Health and Personal Care
  • Product detail pages with images and a one-tap add-to-cart
  • A cart you can edit before checking out
  • Save and pick from multiple delivery addresses
  • Place orders and review your past orders
  • Payment flow and an order-confirmation screen

For the admin

  • Dedicated admin login and panel
  • Add new products with images (stored in Firebase Storage)
  • Modify or delete existing products
  • Everything syncs to the storefront in real time

🧰 Tech stack

Area What we used
Language Java
Backend / DB Firebase Authentication, Cloud Firestore, Realtime Database, Cloud Storage
Networking Volley
Images & animation Glide, Lottie, RoundedImageView
UI Material Components, ViewBinding, Navigation Component, LiveData & ViewModel
Build Gradle (Kotlin DSL), minSdk 28, targetSdk 34
CI GitHub Actions

🧩 Design patterns

We didn't sprinkle patterns for the sake of it β€” each one solved a real problem:

  • Singleton β€” a single shared instance for the User and product models
  • Factory β€” ProductQueryFactory builds the right Firestore query object per category (medication / health / personal)
  • Observer β€” the storefront reacts when a new product is added
  • Adapter β€” RecyclerView adapters for categories, suggested items, cart, orders and the "view all" lists

βœ… Testing & CI

  • Unit testing with JUnit, Mockito and Robolectric (runs on the JVM, no emulator needed)
  • UI / instrumentation testing with Espresso
  • Continuous integration via GitHub Actions β€” every push and pull request to main builds the app and uploads the APK as a downloadable artifact

πŸ“ Architecture & Diagrams

These are trimmed-down versions of the design for readability β€” the full app has 20+ functionalities.

Class Diagram

Class Diagram

Sequence Diagram

Sequence Diagram

State Diagram

State Diagram

Activity Diagram

Activity Diagram


πŸ“± Screenshots


πŸ‘₯ The team

This was a collaborative project by:

About

CSE-3120 | Software Engineering and Information Systems Laboratory Android studio project with Factory , SingleTon , adapter , Observer Design pattern

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages