Skip to content

Welcome to the Shopify Data Ingestion & Insights Service — built as a hands-on solution for an assignment. This project demonstrates enterprise-grade engineering skills: onboarding, integrating, and analyzing retailer customer data with multi-tenancy, real-time sync, and engaging dashboards.

Notifications You must be signed in to change notification settings

akshit040504/shopify

Repository files navigation

Shopify Data Insights Banner

🚀 Shopify Multi-Tenant Data Ingestion & Insights Service

Forward Deployed Engineer Internship Assignment – Xeno • 2025


💡 Features

  • Connects and syncs with multiple Shopify stores via API integration (multi-tenancy)
  • Ingests Customers, Orders, Products, plus bonus custom events (e.g., cart abandoned)
  • Email-authenticated dashboard visualizes total customers, revenue, top customers, more
  • Isolated data per store via tenant ID
  • Trend charts and creative business insights
  • Scheduler/webhook support for continuous data sync
  • Clean deployment (Heroku, Render, Railway, Vercel)

🛠️ Tech Stack

Layer Technology
Backend Node.js (Express.js)
Frontend React.js / Next.js
Database PostgreSQL / MySQL
ORM Sequelize / Prisma
Auth Email, JWT/Sessions
Async Redis / RabbitMQ (Optional)
Charts Chart.js, Recharts, etc.

🚦 Set Up

Setup Instructions

  1. Create .env with DB, API key, JWT configs
  2. Install dependencies:
  3. Run database migrations
  4. Start backend and frontend servers
  5. Deploy via Heroku/Render/Railway/Vercel (follow respective guides)

🔗 API Endpoints

Method Endpoint Description
POST /api/tenant/onboard Register a new Shopify store
GET /api/:tenantId/customers Get customers for a store
GET /api/:tenantId/orders List orders (filter by date-range)
GET /api/:tenantId/products Get products per store
GET /api/:tenantId/metrics Get dashboard metrics

🗄️ Sample Database Schema

Table Key Fields
Tenants id, name, shopify_store_id, email
Customers id, tenant_id, name, email, ...
Orders id, tenant_id, customer_id, date, total_amount
Products id, tenant_id, sku, title, ...
Events id, tenant_id, type, payload, ...

🎥 Demo

Check out the Demo Video for a walkthrough (max 7 mins):

  • Features you built
  • How you solved the problem
  • Key trade-offs and design choices

👀 Assumptions & Limitations

  • Demo uses development Shopify store and sample data
  • Data isolation handled per tenant_id; RBAC is basic
  • Real-time sync via webhooks not fully production-level
  • Redis/RabbitMQ used optionally for async event ingestion

📈 Next Steps

  • Add OAuth, RBAC, SSO for fine-grained access
  • Scale sync using event-driven messaging
  • Setup CI/CD, monitoring, logging, robust security
  • Extend dashboard analytics and business metrics

🙌 About

Built for the Xeno FDE Internship – 2025
Integrate. Adapt. Deliver. Real-world retail engineering.
 


🌐 Connect With Me!

Thanks GIF


About

Welcome to the Shopify Data Ingestion & Insights Service — built as a hands-on solution for an assignment. This project demonstrates enterprise-grade engineering skills: onboarding, integrating, and analyzing retailer customer data with multi-tenancy, real-time sync, and engaging dashboards.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published