mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-03 16:41:27 +01:00
86445087b0b12bdab3f2c323d3d1604738e9eab1
Holy Energy Archive & Community Hub
A premium, responsive full-stack platform for "Holy Energy" fans to rate flavors, explore a categorized archive, and share personalized rating profiles.
Features
- Dynamic Hall of Fame: An auto-rotating carousel featuring the top-rated flavors and community reviews.
- Flavor Gallery: A space-efficient, grid-based view of all rated and missing flavors.
- Personalized Taste Profiles: Share your ratings with the community using tiered (S-D) leaderboards.
- Responsive Design: Optimized for all devices, from ultra-wide monitors to vertical smartphones.
- Secure Authentication: SMTP-verified email signup, password resets, and session management.
- Catalog Automation: Automatic flavor syncing from official Shopify sources with local image caching.
Prerequisites
- Docker
- Docker Compose
- SMTP Server (e.g., Gmail App Password) for email verification.
Quick Setup
-
Clone the repository:
git clone https://github.com/your-repo/holy.git cd holy -
Configure your environment: Copy the example environment file and fill in your specific details (especially SMTP and your domain name):
cp .env.example .env -
Start the containers:
docker-compose up -d --build -
Wait for initial setup: The first time you start the backend, it will automatically:
- Run database migrations.
- Collect static files.
- Sync flavors from the Holy Energy Shopify API (this might take a minute).
-
Access the application:
- Frontend: http://localhost:5173 (or your configured domain)
- API Docs: http://localhost:8000/api/schema/swagger-ui/
- Admin Panel: http://localhost:8000/admin/ (or your configured
ADMIN_URL)
Production Hosting
Security Best Practices
When hosting this application publicly, ensure you update your .env with:
DEBUG=false: Essential for disabling internal Django stack traces.SECRET_KEY: Use a long, random string.ADMIN_URL: Change this to something unique (e.g.,super-secret-gate/) to hide your admin panel from scanners.ALLOWED_HOSTS,CSRF_TRUSTED_ORIGINS,CORS_ALLOWED_ORIGINS: Set these to your actual production domain (e.g.,https://holy.narl.io).
Performance
- The application uses WhiteNoise for efficient static file serving.
- Gunicorn is configured as the production WSGI server.
- Compression Middleware (Gzip/Brotli) is active for API responses.
- Lazy Loading is enabled for all flavor and carousel images.
Project Structure
backend/: Django REST Framework API.frontend/: React 19 application with Material UI and Catppuccin themes.media/: Locally cached product images and user avatars.legacy/: Static JSON data for historical flavors.
License
MIT
Languages
TypeScript
60.1%
Rust
38.8%
Dockerfile
0.4%
Shell
0.4%
HTML
0.2%
Other
0.1%