{"id":49726994,"url":"https://github.com/negarprh/petify","last_synced_at":"2026-05-09T05:03:41.638Z","repository":{"id":323199683,"uuid":"1092459989","full_name":"negarprh/Petify","owner":"negarprh","description":"Petify 🐾 Android e-commerce app for pet supplies built with Java, XML, and Firebase (Authentication + Firestore). Includes Admin and User panels connected through a shared database.","archived":false,"fork":false,"pushed_at":"2025-11-25T03:53:52.000Z","size":615,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-28T13:16:07.511Z","etag":null,"topics":["android-app","ecommerce","firebase","firestore","java","mvvm-architecture"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/negarprh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-08T17:05:10.000Z","updated_at":"2025-11-25T03:53:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/negarprh/Petify","commit_stats":null,"previous_names":["negarprh/petify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/negarprh/Petify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/negarprh%2FPetify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/negarprh%2FPetify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/negarprh%2FPetify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/negarprh%2FPetify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/negarprh","download_url":"https://codeload.github.com/negarprh/Petify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/negarprh%2FPetify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-app","ecommerce","firebase","firestore","java","mvvm-architecture"],"created_at":"2026-05-09T05:03:40.361Z","updated_at":"2026-05-09T05:03:41.622Z","avatar_url":"https://github.com/negarprh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐾 **Petify, Android E-Commerce App for Pet Supplies**\n\n![Android](https://img.shields.io/badge/Android-Java-brightgreen)\n![Firebase](https://img.shields.io/badge/Firebase-Full%20Suite-orange)\n![Firestore](https://img.shields.io/badge/Firestore-NoSQL%20DB-blue)\n![Storage](https://img.shields.io/badge/Firebase%20Storage-Images-blue)\n![Stripe](https://img.shields.io/badge/Stripe-API%20Integration%20-purple)\n![Gradle](https://img.shields.io/badge/Build-Gradle-yellow)\n![UI](https://img.shields.io/badge/UI-XML-lightgrey)\n\n**Petify** is a complete **Android e-commerce app** built with\n**Java + XML + Firebase Auth + Cloud Firestore + Firebase Storage**, featuring real-time synchronization and two fully separated panels: **User** and **Admin**.\n\nIt includes **Stripe API integration** for real online payment processing.\n\n---\n\n# 📸 Screenshots\n\n### 🏠 Home Screen\n\n![](/Demo/Home.png)\n\n### 🛒 Shopping Cart\n\n![](/Demo/Cart.png)\n\n### 🐶 Product Detail\n\n![](/Demo/Product.png)\n\n### 👤 User Profile\n\n![](/Demo/Profile.png)\n\n### 🛠 Admin Dashboard\n\n![](/Demo/adminDashboard.png)\n\n---\n\n# 🧭 Project Overview\n\nPetify includes **two synchronized environments** powered by Firestore:\n\n| Panel                 | Capabilities                                                                                 |\n| --------------------- | -------------------------------------------------------------------------------------------- |\n| 👤 **User Panel**     | Browse products, search, add to cart, manage favorites, view product details, manage profile |\n| 🧑‍💼 **Admin Panel**   | Add/edit/delete products, upload product images, view user orders, manage payments           |\n\nBoth panels communicate with:\n\n* **Cloud Firestore** for real-time database\n* **Firebase Storage** for hosting images\n* **Firebase Authentication** for secure login\n* **Stripe API** for payments\n\n---\n\n# ⚙️ Tech Stack\n\n### **Languages \u0026 Tools**\n\n* Java\n* XML UI\n* Android Studio\n* Gradle\n\n### **Firebase Services**\n\n| Service                | Usage                                    |\n| ---------------------- | ---------------------------------------- |\n| **Authentication**     | Role-based login (User/Admin)            |\n| **Firestore NoSQL DB** | Products, users, orders, cart, favorites |\n| **Firestore Indexes**  | Optimized search \u0026 queries               |\n| **Firebase Storage**   | Product images + Profile images          |\n| **Firestore Rules**    | Secure per-user access control           |\n\n### **External APIs**\n\n| API                      | Purpose                                                                                 |\n| ------------------------ | --------------------------------------------------------------------------------------- |\n| **Stripe API** | Secure online payment processing (credit cards and debit cards payment intents) |\n\nStripe will handle:\n\n* Payment intents\n* Payment confirmation\n* Server-side verification\n* Firestore update on payment success\n\n---\n\n# 🧩 Key Features\n\n## 🔐 Authentication\n\n* Email/Password login via Firebase\n* Admin/User role mapping\n* Auto redirect based on role\n\n---\n\n## 👤 User Features\n\n### 🏠 Home Page\n\n* Firestore-powered product list\n* Search + instant filter\n* Real-time image loading via URL \u0026 Storage\n\n### ❤️ Favorites System\n\n* Toggle heart icon\n* Stored in `users/{uid}/favorites`\n* Favorites screen includes:\n\n  * Product title, category, price\n  * Add to Cart button\n  * Remove favorite\n\n### 🛒 Shopping Cart\n\n* Add/remove products\n* Modify quantity\n* Real-time syncing to Firestore\n\n### 🧾 Product Details\n\n* Large image\n* Description\n* Favorite toggle\n* Add to Cart\n\n### 👤 Profile Section\n\n* Edit profile\n* Change password\n* Logout\n* View order history\n\n---\n\n## 🧑‍💼 Admin Features\n\n### 📦 Product Management\n\n* Create new products\n* Edit product details\n* Delete products\n* Upload product images → Firebase Storage\n\n### 🛒 Order \u0026 Payment Overview\n\n* See all user orders\n* Inspect payment details\n* Verify completed payments\n* Support for **Stripe API**\n\n---\n\n# 🔥 Firebase Architecture (Technical Deep Dive)\n\n## **Firestore Structure**\n\n```\nusers/\n   uid/\n      name: \"John\"\n      email: \"john@gmail.com\"\n      role: \"user\"\n\nproducts/\n   productId/\n      title: \"Dog Toy\"\n      category: \"Toys\"\n      price: 12.99\n      description: \"...\"\n      imageUrl: \"...\"\n      createdAt: timestamp\n\nusers/{uid}/favorites/\n   productId/\n      productId: \"...\"\n      title: \"...\"\n      imageUrl: \"...\"\n      price: 12.99\n      createdAt: timestamp\n\nusers/{uid}/cartItems/\n   productId/\n      title: \"...\"\n      quantity: 2\n      price: 12.99\n      imageUrl: \"...\"\n\norders/\n   orderId/\n      userId: \"uid\"\n      items: [...]\n      totalPrice: ...\n      status: \"pending\" | \"paid\"\n```\n\n---\n\n## **Firebase Storage Structure**\n\n```\nproduct_images/\n    productId.jpg\n\nprofile_images/\n    uid.jpg\n```\n\nUsed by:\n\n* Admin product creation\n* User profile updates\n\n---\n\n# 💳 Stripe API Integration \n\nStripe integration will introduce:\n\n### **Client-Side (Android)**\n\n* Initiate payment intents\n* Display Stripe’s payment sheet\n* Secure tokenization of card details\n\n### **Server-Side**\n\n* Cloud Function or backend service will:\n\n  * Create payment intents\n  * Verify success\n  * Update Firestore:\n\n    ```\n    orders/orderId/status: \"paid\"\n    ```\n\n### **Benefits**\n\n* PCI-compliant card handling\n* Strong authentication\n* Support for credit/debit\n* Automatic fraud detection\n\n---\n\n# 🧱 Architecture\n\n* **Models** → represent Firestore documents\n* **Adapters** → efficient RecyclerView bindings\n* **FirebaseUtils** → shared Firestore/Auth instances\n* **Activities** → UI + user interactions, no business logic inside\n* **Subcollections** → for favorites, cart, payments\n\n---\n\n# 🗂️ Folder Structure\n\n```\nPetify/\n ├── app/\n │   ├── java/com/example/petify/\n │   │    ├── User/\n │   │    ├── Admin/\n │   │    ├── Adapters/\n │   │    ├── Models/\n │   │    └── FirebaseUtils.java\n │   ├── res/layout/\n │   ├── res/drawable/\n │   ├── res/values/\n │   └── AndroidManifest.xml\n ├── google-services.json\n ├── build.gradle\n ├── README.md\n └── .gitignore\n```\n\n---\n\n# 🚀 Running the Project\n\n1. Clone:\n\n```bash\ngit clone https://github.com/negarprh/Petify.git\n```\n\n2. Open in Android Studio\n3. Add your `google-services.json` under `/app`\n4. Connect Firebase\n5. Sync + Run\n\n\n---\n\n# 👩‍💻 Authors\n\n**Negar Pirasteh** ,\n**Betty Dang**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnegarprh%2Fpetify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnegarprh%2Fpetify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnegarprh%2Fpetify/lists"}