Skip to content

irfan-rg/the-xo-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

The βœ˜σ …'𝑢 Store - The Weeknd Official Merchandise Store

A modern, full-stack e-commerce platform for The Weeknd's official merchandise, featuring exclusive apparel and music collections from albums like "Hurry Up Tomorrow" and "After Hours".

The XO Store

The XO Store

Live Demo

πŸš€ Live Production

⏰ First Visit Note: The backend is hosted on Render's free tier, which means the server "sleeps" after periods of inactivity. On your first visit or after 15+ minutes of no activity, the server needs 1-2 minutes to wake up. This is normal for free hosting and doesn't affect performance once active!

✨ Features

  • πŸ›οΈ Product Catalog: Browse exclusive merchandise by category (apparel, music)
  • πŸ” Authentication: Secure user authentication via Auth0
  • πŸ’³ Payment Processing: Secure payments powered by Stripe
  • πŸ“± Responsive Design: Optimized for desktop and mobile devices
  • 🎡 Album Collections: Products organized by album releases
  • πŸ›’ Shopping Cart: Add/remove items with real-time cart management
  • πŸ“¦ Product Details: Detailed product information with high-quality images
  • 🎨 Modern UI: Clean, dark theme with smooth animations

πŸ› οΈ Tech Stack

πŸ–₯️Frontend

  • React 19 - Modern React with latest features
  • Vite - Fast build tool and development server
  • Tailwind CSS - Utility-first CSS framework
  • React Router - Client-side routing
  • Auth0 React SDK - Authentication
  • Stripe React - Payment integration
  • Axios - HTTP client
  • Cloudinary - Image optimization and delivery

For detailed Frontend documentation, see FRONTEND.md

πŸ—ƒοΈBackend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • MongoDB - NoSQL database with Mongoose ODM
  • Stripe API - Payment processing
  • Cloudinary API - Image upload and management
  • CORS - Cross-Origin Resource Sharing
  • dotenv - Environment variable management

For detailed Backend documentation, see BACKEND.md

πŸ“ Project Structure

merch/
β”œβ”€β”€ frontend/merch-front/          # React frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/                 # Page components (Home, Products, Cart, etc.)
β”‚   β”‚   β”œβ”€β”€ context/               # React Context (CartContext)
β”‚   β”‚   └── assets/                # Static assets
β”‚   β”œβ”€β”€ public/                    # Public assets
β”‚   └── package.json               # Frontend dependencies
β”œβ”€β”€ backend/                       # Node.js backend API
β”‚   β”œβ”€β”€ models/                    # MongoDB models
β”‚   β”œβ”€β”€ routes/                    # API route handlers
β”‚   β”œβ”€β”€ server.js                  # Main server file
β”‚   └── package.json               # Backend dependencies
└── README.md                      # Project documentation

πŸš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB database
  • Stripe account
  • Auth0 account
  • Cloudinary account

Installation

  1. Clone the repository

    git clone https://github.com/irfan-rg/the-xo-store
    cd merch
  2. Setup Backend

    cd backend
    npm install

    Create .env file in backend directory:

    PORT=5000
    MONGO_URI=your_mongodb_connection_string
    STRIPE_SECRET_KEY=your_stripe_secret_key
    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
    CLOUDINARY_API_KEY=your_cloudinary_api_key
    CLOUDINARY_API_SECRET=your_cloudinary_api_secret

    Start the backend server:

    npm run dev
  3. Setup Frontend

    cd frontend/merch-front
    npm install

    Create .env file in frontend directory:

    VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
    VITE_API_URL=http://localhost:5000
    VITE_AUTH0_DOMAIN=your_auth0_domain
    VITE_AUTH0_CLIENT_ID=your_auth0_client_id

    Start the frontend development server:

    npm run dev
  4. Access the application

πŸ“š API Documentation

Base URL

Development: http://localhost:5000
Production: [Your deployed backend URL]

Endpoints

Products

  • GET /api/products - Get all products (supports category filtering)
  • GET /api/products?category=apparel - Get products by category

Payments

  • POST /api/create-payment-intent - Create Stripe payment intent

Images

  • POST /api/upload-image - Upload image to Cloudinary

Utilities

  • GET / - Health check endpoint
  • GET /seed - Seed database with sample products (development only)

For detailed API documentation, see API.md

πŸš€ Deployment

Frontend (Vercel)

The frontend is configured for Vercel deployment with automatic builds from the main branch.

Backend

Can be deployed to various platforms (Railway, Render, Heroku, etc.)

Current Setup: Deployed on Render's free tier

  • βœ… 100% Free - No monthly costs
  • ⏰ Cold Starts - 1-2 minute wake-up time after inactivity
  • πŸ”„ Auto-Deploy - Automatic deployments from GitHub

For detailed deployment instructions, see DEPLOYMENT.md


Code Review

High‑quality contributions are welcome. Please read our code review guidance before opening a PR:

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • The Weeknd for the musical inspiration
  • Cloudinary for image optimization
  • Stripe for payment processing
  • Auth0 for authentication services

Contact

For questions or support, please open an issue in this repository.


Made With Love βœ˜σ …'𝑢 !

About

A modern, full-stack e-commerce platform for The Weeknd's official merchandise.

Topics

Resources

License

Stars

Watchers

Forks

Contributors