A premium fashion catalog website for browsing products, generating PDF orders, and contacting sellers via WhatsApp/Telegram/Instagram.
hoohlyashop/
βββ backend/ # FastAPI Python backend
β βββ server.py # Main API server
β βββ requirements.txt # Python dependencies
β βββ .env.example # Environment variables template
β βββ uploads/ # Uploaded images storage
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ context/ # React contexts (Cart, Language)
β β βββ App.js # Main app component
β β βββ index.css # Global styles
β βββ public/ # Static assets
β βββ package.json # Node dependencies
β βββ .env.example # Frontend environment template
βββ README.md # This file
unzip hoohlyashop.zip
cd hoohlyashop
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your settings (see Environment Variables section)
# Run backend
uvicorn server:app --host 0.0.0.0 --port 8001 --reload
cd frontend
# Install dependencies
yarn install # or: npm install
# Configure environment
cp .env.example .env
# Edit .env with your backend URL
# Run development server
yarn start # or: npm start
MONGO_URL="mongodb://localhost:27017" # MongoDB connection string
DB_NAME="hoohlyashop" # Database name
CORS_ORIGINS="*" # Allowed origins
ADMIN_PASSWORD="808206" # Admin panel password
REACT_APP_BACKEND_URL="http://localhost:8001" # Backend API URL
/admin on your website808206Products are stored in MongoDB products collection:
{
id: "unique-id",
name: "Product Name",
name_de: "German Name",
description: "Description",
brand_id: "brand-id",
category_id: "category-id",
images: ["url1", "url2"],
sizes: ["S", "M", "L"],
price_text: "CHF 299.00",
price_text_de: "CHF 299.00",
featured: true,
active: true
}
Edit frontend/src/pages/Home.js, find the hero section and change the image URL:
<img
src="YOUR_NEW_IMAGE_URL"
alt="HooHlya Shop"
className="w-full h-full object-cover"
/>
The logo is text-based. To change it, edit frontend/src/components/Header.js:
<span className="font-heading text-xl md:text-2xl tracking-wider text-white">
YOUR SHOP NAME
</span>
# Install Node.js, Python, MongoDB
sudo apt update
sudo apt install nodejs npm python3 python3-pip mongodb
cd backend
pip install -r requirements.txt
# Use gunicorn for production
gunicorn server:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8001
cd frontend
yarn build
# Serve with nginx or copy build/ to web server
server {
listen 80;
server_name yourdomain.com;
location / {
root /var/www/hoohlyashop/frontend/build;
try_files $uri /index.html;
}
location /api {
proxy_pass http://localhost:8001;
}
}
REACT_APP_BACKEND_URL env varEdit frontend/src/index.css:
/* Main accent color (gold) */
.text-[#c9a962] { color: #c9a962; }
.bg-[#c9a962] { background: #c9a962; }
/* Background colors */
.bg-[#141414] { background: #141414; } /* Main background */
.bg-[#1a1a1a] { background: #1a1a1a; } /* Card background */
Fonts are loaded from Google Fonts in index.css:
Edit these files to change WhatsApp/Telegram/Instagram links:
frontend/src/components/Footer.jsfrontend/src/pages/Home.jsfrontend/src/pages/Cart.jsfrontend/src/pages/ProductDetail.jsCurrent configuration:
This project is yours to use, modify, and host freely. No platform lock-in.
For technical support or customization requests, contact the developer.