Initial Plan for the E-Commerce MVP
Objective
- Develop a minimal yet conceptually rigorous three-tier e-commerce MVP
- Showcase database, application (logic), and presentation (frontend) layers
Proposed Architecture
- Database: Amazon RDS (or similar managed relational DB)
- Application Layer: AWS Lambda or Amazon ECS/Fargate for scalable business logic
- Frontend: Static hosting on Amazon S3, distribution via Amazon CloudFront
- Potential Enhancements: Amazon OpenSearch Service, AWS Lambda@Edge
Key Features
- Category Extraction: From “product_category_tree” to a top-level “category” field
- Search Functionality: Basic keyword search by product name/description
- Homepage Redesign: Prominent category display for intuitive navigation
Sitemap and Structure
project_root/
├── frontend/
│ ├── index.html
│ ├── styles.css
│ ├── category.html (future)
│ ├── product.html (future)
│ └── assets/
│ └── images/
├── backend/
│ ├── app.py
│ ├── requirements.txt
│ └── api/
│ └── (API endpoints)
├── data/
│ ├── products.csv
│ └── products_with_categories.csv
└── infra/
├── templates/
├── scripts/
│ └── category_extraction.py
└── README.md
Current Product Schema
Field |
Description |
Example |
uniq_id |
Unique identifier |
e0c74430be28f32f8c2a29060 |
product_url |
Link to product detail page |
http://example.com/products/e0c74430be28 |
product_name |
Name of the product |
Ultra HD Television |
product_category_tree |
Hierarchical product categorisation |
Electronics > Televisions > LED TVs |
pid |
Internal product ID |
PID-982310 |
retail_price |
Recommended retail price |
799.99 |
image |
URL/path to product image |
http://example.com/images/tv.png |
description |
Product features and attributes |
55-inch 4K LED TV with HDR support |
product_rating |
Platform-assigned rating |
4.2 |
overall_rating |
Aggregated rating from multiple sources |
4.0 |
brand |
Brand or manufacturer |
Samsung |
Project Update: Progress, Key Learnings & Next Steps
Progress to Date
- Initial single-page MVP too basic: lacked navigation, categorisation, and meaningful user journey
- Identified need to extract top-level categories for better structured navigation
Key Learnings
- Centrality of Categorisation: Without categories, products are difficult to browse
- Architectural Clarity: The three-tier model demands dynamic data handling and flexible UI
Technical Steps
Script to extract top-level category:
import pandas as pd
df = pd.read_csv("products.csv")
def extract_top_category(category_tree):
if pd.notnull(category_tree):
return category_tree.split(' > ')[0]
return None
df['category'] = df['product_category_tree'].apply(extract_top_category)
df.to_csv("products_with_categories.csv", index=False)
print("Top-level categories extracted!")
Immediate Next Steps
- Update database schema with new “category” field
- Redesign homepage to highlight categories
- Create category-specific product listings
- Implement basic search (SQL LIKE queries), consider advanced search later
Ongoing Vision
- Refine data taxonomy and UI for intuitive browsing
- Continuously enhance architecture for scalability and performance
- Explore advanced search and personalisation features in future phases