A modern web application that helps users explore new cultural experiences through AI-powered recommendations and social challenges.
Zesty/
βββ π client/ # Frontend (React + TypeScript)
β βββ π src/
β β βββ π pages/ # All UI components
β β βββ π components/ # Reusable components
β β βββ π lib/ # API services
β β βββ π hooks/ # Custom hooks
β βββ π package.json # Frontend dependencies
β βββ π vite.config.ts # Vite configuration
βββ π server/ # Backend (Express.js)
β βββ π index.js # API proxy (164 lines)
β βββ π package.json # Server dependencies
βββ π supabase/ # Database & Auth
β βββ π migrations/ # Database schema
βββ π package.json # Root workspace config
βββ π env.example # Environment variables template
βββ π README.md # This file
# Install all dependencies (client + server)
npm run install:all# Copy environment template
cp env.example .env
# Edit with your API keys
nano .env# Run both frontend and backend
npm run dev:full| Script | Description | Port |
|---|---|---|
npm run dev |
Frontend only | 5173 |
npm run server |
Backend only | 3001 |
npm run server:dev |
Backend with nodemon | 3001 |
npm run dev:full |
Both frontend & backend | 5173 + 3001 |
npm run build |
Build frontend for production | - |
npm run install:all |
Install all dependencies | - |
Create a .env file in the root directory:
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_url_here
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key_here
# Qloo API Configuration
VITE_QLOO_API_KEY=your_qloo_api_key_here
VITE_QLOO_BASE_URL=https://hackathon.api.qloo.com
# Gemini API Configuration
VITE_GEMINI_API_KEY=your_gemini_api_key_here
VITE_GEMINI_API_URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent
# Backend Configuration
VITE_BACKEND_URL=http://localhost:3001
VITE_CORS_ORIGIN=http://localhost:5173- Sign up/in with Supabase Auth
- Email confirmation flow
- Secure session management
- Interactive taste preference collection
- Multi-step form with animations
- Cultural exposure score calculation
- Swipeable cultural challenge cards
- AI-powered recommendations
- Integration with Qloo and Gemini APIs
- Progress tracking with charts
- Cultural exposure analytics
- AI-generated insights
- Taste nemesis matching
- Social challenges
- Progress sharing
- Track completed tasks
- Rate cultural experiences
- Share achievements
- β API keys secured in backend
- β Rate limiting enabled
- β Input sanitization
- β CORS protection
- β Helmet security headers
- β Row Level Security (RLS)
Frontend (React) β Express Server β External APIs (Qloo, Gemini)
Frontend (React) β Supabase β Database & Auth
- Framework: React + TypeScript + Vite
- Styling: Tailwind CSS + Framer Motion
- State Management: React Context API
- Routing: React Router DOM
- UI Components: Lucide React icons
- Framework: Express.js
- Security: Helmet, CORS, Rate limiting
- API Proxy: Qloo and Gemini APIs
- Error Handling: Centralized error management
- Platform: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Security: Row Level Security (RLS)
- Real-time: Live updates
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
- Health Check: http://localhost:3001/api/health
curl http://localhost:3001/api/healthExpected response:
{
"status": "OK",
"timestamp": "2024-01-01T00:00:00.000Z",
"services": {
"qloo": "Available",
"gemini": "Available"
}
}# Kill processes on ports
lsof -ti:3001 | xargs kill -9
lsof -ti:5173 | xargs kill -9# Reinstall all dependencies
npm run install:all# Check if .env exists
ls -la .envnpm run dev:full# Build frontend
npm run build
# Start server
npm run server- Frontend: Vercel, Netlify
- Backend: Railway, Render, Heroku
- Database: Supabase
- Cultural entity search
- Recommendation insights
- Cross-domain affinity
- Content generation
- Cultural explanations
- Progress insights
- User authentication
- Data storage
- Real-time updates
- π Dark theme with gradients
- β¨ Smooth animations (Framer Motion)
- π± Responsive design
- π― Intuitive navigation
- π¨ Modern, attractive interface
- Create components in
client/src/components/ - Add pages in
client/src/pages/ - Update API services in
client/src/lib/ - Add backend endpoints in
server/index.js
- Create migration in
supabase/migrations/ - Update types in
client/src/lib/supabase.ts - Test with Supabase dashboard
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Zesty - Discover Your Cultural Horizons! π