Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation


📑 Table of Contents

Click to expand / collapse
# Section Description
1 🎯 Project Overview What this project is about
2 ⚡ Key Features Core product catalog capabilities
3 🏗️ Architecture System design & workflow
4 📋 Product Backlog All 10 user stories
5 🏃 Sprint Planning Sprint breakdown & board structure
6 🏷️ Labeling Strategy How issues are categorized
7 📂 Repository Structure File & folder layout
8 🚀 Getting Started How to clone & explore
9 🔄 Agile Workflow Scrum ceremonies & practices
10 🤝 Contributing How to contribute
11 📜 License License information

🎯 Project Overview

This repository demonstrates the practical application of Agile and Scrum methodologies to plan, track, and manage the development of a back-end product catalog service for an e-commerce platform.

The project focuses on project management artifacts rather than code implementation — showcasing how a real-world development team would use GitHub's built-in tools (Issues, Projects, Milestones, Labels) to run an Agile sprint from inception to delivery.

🧩 What This Project Demonstrates

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   ✅  Writing well-structured User Stories (As a / I need /     │
│       So that) with Acceptance Criteria in Gherkin syntax       │
│                                                                 │
│   ✅  Building & managing a Product Backlog with GitHub Issues  │
│                                                                 │
│   ✅  Sprint Planning using GitHub Milestones                   │
│                                                                 │
│   ✅  Kanban board management via GitHub Projects               │
│                                                                 │
│   ✅  Labeling & categorization strategy (enhancement,          │
│       technical debt)                                           │
│                                                                 │
│   ✅  Issue templates for consistent story creation             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

⚡ Key Features

The product catalog service is designed to support the following RESTful operations:

🛍️ Customer-Facing

Operation Description
📖 List Products Browse all available catalog items
🔍 Query Products Search by category, price, keywords
📄 Retrieve Product View full details by product ID
👍 Like Product Express preference for an item
👎 Dislike Product Indicate a product didn't meet expectations

🔧 Admin & Infrastructure

Operation Description
➕ Create Product Add new items to the catalog
✏️ Update Product Modify price, description, inventory
🗑️ Delete Product Remove discontinued products
☁️ Cloud Hosting High availability & elasticity
🔄 CI/CD Pipeline Automated build, test, deploy

🏗️ Architecture

graph LR
    subgraph "🌐 Client Layer"
        A["🛒 E-Commerce Frontend"]
        B["📱 Mobile App"]
        C["🔗 Third-Party APIs"]
    end

    subgraph "⚙️ Product Catalog Service"
        D["🔀 API Gateway / Router"]
        E["📦 Product CRUD"]
        F["👍👎 Like / Dislike"]
        G["🔍 Query & Search"]
    end

    subgraph "💾 Data Layer"
        H["🗄️ Database"]
    end

    subgraph "☁️ Infrastructure"
        I["🚀 CI/CD Pipeline"]
        J["☁️ Cloud Platform"]
    end

    A --> D
    B --> D
    C --> D
    D --> E
    D --> F
    D --> G
    E --> H
    F --> H
    G --> H
    I --> J
    J --> D

    style A fill:#6C63FF,stroke:#6C63FF,color:#fff
    style B fill:#6C63FF,stroke:#6C63FF,color:#fff
    style C fill:#6C63FF,stroke:#6C63FF,color:#fff
    style D fill:#4ECDC4,stroke:#4ECDC4,color:#fff
    style E fill:#FF6B6B,stroke:#FF6B6B,color:#fff
    style F fill:#FF6B6B,stroke:#FF6B6B,color:#fff
    style G fill:#FF6B6B,stroke:#FF6B6B,color:#fff
    style H fill:#FFE66D,stroke:#FFE66D,color:#333
    style I fill:#A8E6CF,stroke:#A8E6CF,color:#333
    style J fill:#A8E6CF,stroke:#A8E6CF,color:#333
Loading

📋 Product Backlog

The backlog contains 10 user stories organized by stakeholder role. Each story follows the standard format and includes acceptance criteria.


🛍️ Customer / Shopper Stories

📄 #1 — Create a product in the catalog
Field Details
Role Catalog Administrator
Label enhancement
Sprint ✅ Sprint 1
Assignee @Sairaj213

As a catalog administrator
I need the ability to create a product in the catalog
So that new items can be added and made available for customers to view and purchase

Acceptance Criteria:

Given the catalog administrator has valid product details (name, description, price, sku)
When the administrator submits the new product to the catalog
Then the product is stored successfully in the database
And a confirmation with the new product ID and HTTP 201 status is returned
🔍 #2 — Retrieve a product from the catalog
Field Details
Role Customer / Client Application
Label enhancement
Sprint ✅ Sprint 1
Assignee @Sairaj213

As a customer or client application
I need the ability to retrieve a product from the catalog
So that I can view complete details, specifications, and pricing for a specific item

Acceptance Criteria:

Given a product exists in the catalog with a valid product ID
When a request is submitted to retrieve the product by its ID
Then the product details are returned with HTTP 200 status
And if the product does not exist, an error response with HTTP 404 status is returned
✏️ #3 — Update a product in the catalog
Field Details
Role Catalog Administrator
Label enhancement
Sprint ✅ Sprint 1
Assignee @Sairaj213

As a catalog administrator
I need the ability to update a product in the catalog
So that product information such as price, description, or inventory stays up to date

Acceptance Criteria:

Given an existing product in the catalog
When the administrator submits modified product details
Then the product record is updated in the catalog
And the updated details are returned with HTTP 200 status
🗑️ #4 — Delete a product from the catalog
Field Details
Role Catalog Administrator
Label enhancement
Sprint ✅ Sprint 1
Assignee @Sairaj213

As a catalog administrator
I need the ability to delete a product from the catalog
So that discontinued or obsolete products can be permanently removed

Acceptance Criteria:

Given an existing product in the catalog
When the administrator requests deletion of the product
Then the product is permanently removed from the catalog
And an HTTP 204 No Content response is returned
👍 #5 — Like a product in the catalog
Field Details
Role Customer / Shopper
Label enhancement
Sprint 📌 Backlog

As a customer / shopper
I need the ability to Like a product in the catalog
So that I can indicate my preference and help other shoppers discover popular items

Acceptance Criteria:

Given a customer is browsing a product page
When the customer clicks the 'Like' button on a product
Then the like count for the product increments by 1
And the customer's like status is saved
👎 #6 — Dislike a product in the catalog
Field Details
Role Customer / Shopper
Label enhancement
Sprint 📌 Backlog

As a customer / shopper
I need the ability to Dislike a product in the catalog
So that I can express that a product did not meet my expectations

📖 #7 — List all products in the catalog
Field Details
Role Customer / Shopper
Label enhancement
Sprint 📌 Backlog

As a customer / shopper
I need the ability to list all products in the catalog
So that I can browse through all available items in the store

🔎 #8 — Query a subset of products in the catalog
Field Details
Role Customer / Shopper
Label enhancement
Sprint 📌 Backlog

As a customer / shopper
I need the ability to query a subset of products in the catalog
So that I can find specific items by category, price range, or search keywords


🔧 DevOps / Infrastructure Stories

☁️ #9 — Must be hosted in the cloud
Field Details
Role DevOps Engineer
Label technical debt
Sprint 📌 Backlog

As a DevOps engineer
I need the product catalog service to be hosted in the cloud
So that the application has high availability, elasticity, and reliable infrastructure

🔄 #10 — Must have automation to deploy new changes to the cloud
Field Details
Role Developer / DevOps Engineer
Label technical debt
Sprint 📌 Backlog

As a developer / DevOps engineer
I need automation to deploy new changes to the cloud
So that updates can be built, tested, and released continuously with minimal downtime and error


🏃 Sprint Planning

Sprint 1 Overview

Attribute Value
🏷️ Milestone Sprint
⏱️ Duration 2 weeks
📅 Due Date September 20, 2026
📊 Stories in Sprint 4
📌 Stories in Backlog 6

📊 Sprint vs Backlog Distribution

pie title Story Distribution
    "Sprint 1 (In Progress)" : 4
    "Product Backlog" : 6
Loading

🗂️ Kanban Board Columns

The project uses a GitHub Projects Kanban board with the following workflow:

graph LR
    A["📥 New Issues"]
    B["📝 Icebox"]
    C["📋 Product Backlog"]
    D["🏃 Sprint Backlog"]
    E["🔨 In Progress"]
    F["👀 Review / QA"]
    G["✅ Done"]

    A --> B
    B --> C
    C --> D
    D --> E
    E --> F
    F --> G

    style A fill:#E8E8E8,stroke:#999,color:#333
    style B fill:#DDD6FE,stroke:#8B5CF6,color:#333
    style C fill:#BFDBFE,stroke:#3B82F6,color:#333
    style D fill:#FDE68A,stroke:#F59E0B,color:#333
    style E fill:#FCA5A5,stroke:#EF4444,color:#333
    style F fill:#A7F3D0,stroke:#10B981,color:#333
    style G fill:#6EE7B7,stroke:#059669,color:#fff
Loading

📌 Sprint 1 — Story Assignment

# Story Assignee Status
1 Create a product in the catalog @Sairaj213 🔨 In Progress
2 Retrieve a product from the catalog @Sairaj213 🔨 In Progress
3 Update a product in the catalog @Sairaj213 🔨 In Progress
4 Delete a product from the catalog @Sairaj213 🔨 In Progress

🏷️ Labeling Strategy

Issues are categorized using a clear labeling system to distinguish between feature work and infrastructure concerns:

Label Color Purpose Count
enhancement 🟦 New feature or request 8
technical debt 🟥 Technical debt or infrastructure items 2
bug 🔴 Something isn't working —
documentation 🔵 Improvements or additions to docs —
good first issue 🟣 Good for newcomers —

📂 Repository Structure

agile-final-project/
│
├── 📄 README.md                          # Project documentation (you are here!)
│
└── 📁 .github/
    └── 📁 ISSUE_TEMPLATE/
        └── 📄 user-story.md              # User Story issue template
                                           #   ├── As a [role]
                                           #   ├── I need [function]
                                           #   ├── So that [benefit]
                                           #   └── Acceptance Criteria

💡 Note: This project focuses on Agile planning artifacts (user stories, sprint planning, backlog management) rather than application source code.


🚀 Getting Started

📥 Clone the Repository

git clone https://github.com/Sairaj213/agile-final-project.git
cd agile-final-project

👀 Explore the Agile Artifacts

What to Explore Where to Find It
📋 Product Backlog Issues Tab
📊 Kanban Board Projects Tab
🏃 Sprint Milestone Milestones
🏷️ Labels Labels
📝 Issue Template .github/ISSUE_TEMPLATE/user-story.md

🔄 Agile Workflow

This project follows the Scrum framework with the following ceremonies and artifacts:

graph TB
    subgraph "🔄 Scrum Framework"
        A["📋 Product Backlog<br/><i>All 10 user stories</i>"]
        B["🎯 Sprint Planning<br/><i>Select top-priority stories</i>"]
        C["🏃 Sprint Backlog<br/><i>4 stories for Sprint 1</i>"]
        D["📅 Daily Standup<br/><i>What did I do? What will I do?<br/>Any blockers?</i>"]
        E["🔨 Development<br/><i>Build, test, iterate</i>"]
        F["👀 Sprint Review<br/><i>Demo to stakeholders</i>"]
        G["🔍 Sprint Retrospective<br/><i>What went well?<br/>What to improve?</i>"]
    end

    A --> B
    B --> C
    C --> D
    D --> E
    E --> D
    E --> F
    F --> G
    G --> A

    style A fill:#6C63FF,stroke:#6C63FF,color:#fff
    style B fill:#4ECDC4,stroke:#4ECDC4,color:#fff
    style C fill:#FFE66D,stroke:#FFE66D,color:#333
    style D fill:#FF6B6B,stroke:#FF6B6B,color:#fff
    style E fill:#A8E6CF,stroke:#A8E6CF,color:#333
    style F fill:#DDA0DD,stroke:#DDA0DD,color:#333
    style G fill:#F0E68C,stroke:#DAA520,color:#333
Loading

📝 User Story Template

Every story follows a standardized template:

As a    → [role]           — Who benefits?
I need  → [function]       — What capability?
So that → [benefit]        — Why does it matter?

Acceptance Criteria        — Gherkin-style Given/When/Then

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. 💾 Commit your changes (git commit -m 'Add amazing feature')
  4. 📤 Push to the branch (git push origin feature/amazing-feature)
  5. 🔃 Open a Pull Request

📌 Please use the User Story template when creating new issues.





⭐ If you found this project helpful, please give it a star!


Made with ❤️ by Sairaj213


GitHub followers GitHub stars

About

Back-end e-commerce product catalog service — built using Agile & Scrum methodology with GitHub Issues, Kanban board, Sprint planning, and User Stories.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors