Skip to content

Repository files navigation

Table Tennis E-Commerce App

A modern Android application for browsing, searching, and purchasing table tennis products. Built with Firebase backend, user authentication, and a clean, user-friendly interface.

Features

  • Product Catalog: Browse bats, balls, tables, and more with detailed product pages.
  • Search & Filter: Powerful search with recent history, filtering, and sorting.
  • Wishlist: Add/remove products to your wishlist (requires sign-in).
  • Cart: Add products to your cart, view totals, and checkout.
  • User Authentication: Sign up, sign in, and manage your profile securely with Firebase Auth.
  • Recommendations: See top picks and featured products on the homepage.
  • Firestore Integration: All product, cart, wishlist, and user data is managed via Firebase Firestore.
  • Responsive UI: Built with Material Design and ViewBinding for a smooth experience.

Demo

Home Page

Search Page

Category Page

Item Page

Wishlist Page

Cart Page

Sign In Page

Project Structure

app/
├── src/main/java/com/example/app/
│   ├── UI/         # Activities for Main, Search, Details, Cart, Profile, Wishlist, List
│   ├── Model/      # Data models (e.g., TableTennisProduct)
│   ├── Data/       # FirestoreRepository for all DB operations
│   ├── Auth/       # AuthManager for Firebase Authentication
│   ├── Adapters/   # RecyclerView adapters for products, wishlist, cart, etc.
│   └── Util/       # Utility classes (navigation, error handling, etc.)
├── res/            # Layouts, drawables, values
├── AndroidManifest.xml
├── build.gradle.kts
└── google-services.json

Getting Started

Prerequisites

  • Android Studio (latest recommended)
  • Java 11+
  • Firebase account (for your own deployment)

Setup

  1. Clone the repository
  2. Open in Android Studio
  3. Firebase Setup:
    • The project is pre-configured for Firebase (Firestore, Auth, Analytics).
    • If you fork or redeploy, replace google-services.json with your own from the Firebase Console.
  4. Build & Run
    • Connect an Android device or use an emulator.
    • Click Run ▶️ in Android Studio.

Dependencies

  • Firebase Firestore, Auth, Analytics
  • Google Material Components
  • Glide (image loading)
  • Gson (JSON parsing)

All dependencies are managed in build.gradle.kts.

Core Classes & Architecture

  • MainActivity: Homepage with categories, featured product, and top picks.
  • SearchActivity: Search bar, recent searches, filtering, and sorting.
  • DetailsActivity: Product details, add to cart, wishlist toggle, recommendations.
  • CartActivity: View, update, and checkout cart items.
  • ProfileActivity: Sign in/up, profile management, cart/wishlist summary.
  • WishListActivity: Manage wishlist items.
  • FirestoreRepository: Singleton for all Firestore DB operations (products, cart, wishlist, user profiles).
  • AuthManager: Handles Firebase Auth (sign in, sign up, sign out).
  • Adapters: For RecyclerViews (products, wishlist, cart, recommendations).
  • Model/TableTennisProduct: Main data model for products.

Customization

  • To add new product categories, update Firestore and UI category cards.
  • To change branding, update resources in res/ and app icons.

Authors

  • Rhett Murdoch
  • Josh Shiu
  • Jerry Kim

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages