Skip to content

surya4419/Zesty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 Zesty - Cultural Discovery Platform

A modern web application that helps users explore new cultural experiences through AI-powered recommendations and social challenges.

πŸ“ Project Structure

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

πŸš€ Quick Start

1. Install Dependencies

# Install all dependencies (client + server)
npm run install:all

2. Environment Setup

# Copy environment template
cp env.example .env

# Edit with your API keys
nano .env

3. Run Development Server

# Run both frontend and backend
npm run dev:full

πŸ“Š Available Scripts

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 -

πŸ”§ Environment Variables

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

🎯 Features

βœ… Authentication

  • Sign up/in with Supabase Auth
  • Email confirmation flow
  • Secure session management

βœ… Onboarding

  • Interactive taste preference collection
  • Multi-step form with animations
  • Cultural exposure score calculation

βœ… Explore

  • Swipeable cultural challenge cards
  • AI-powered recommendations
  • Integration with Qloo and Gemini APIs

βœ… Dashboard

  • Progress tracking with charts
  • Cultural exposure analytics
  • AI-generated insights

βœ… Connect

  • Taste nemesis matching
  • Social challenges
  • Progress sharing

βœ… Challenges

  • Track completed tasks
  • Rate cultural experiences
  • Share achievements

πŸ”’ Security Features

  • βœ… API keys secured in backend
  • βœ… Rate limiting enabled
  • βœ… Input sanitization
  • βœ… CORS protection
  • βœ… Helmet security headers
  • βœ… Row Level Security (RLS)

πŸ—οΈ Architecture

Frontend (React) β†’ Express Server β†’ External APIs (Qloo, Gemini)
Frontend (React) β†’ Supabase β†’ Database & Auth

Client (Frontend)

  • Framework: React + TypeScript + Vite
  • Styling: Tailwind CSS + Framer Motion
  • State Management: React Context API
  • Routing: React Router DOM
  • UI Components: Lucide React icons

Server (Backend)

  • Framework: Express.js
  • Security: Helmet, CORS, Rate limiting
  • API Proxy: Qloo and Gemini APIs
  • Error Handling: Centralized error management

Database

  • Platform: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Security: Row Level Security (RLS)
  • Real-time: Live updates

πŸ“± Access Points

πŸ” Verification

Backend Health Check

curl http://localhost:3001/api/health

Expected response:

{
  "status": "OK",
  "timestamp": "2024-01-01T00:00:00.000Z",
  "services": {
    "qloo": "Available",
    "gemini": "Available"
  }
}

πŸ› οΈ Troubleshooting

Port Issues

# Kill processes on ports
lsof -ti:3001 | xargs kill -9
lsof -ti:5173 | xargs kill -9

Dependencies

# Reinstall all dependencies
npm run install:all

Environment Variables

# Check if .env exists
ls -la .env

πŸš€ Deployment

Development

npm run dev:full

Production

# Build frontend
npm run build

# Start server
npm run server

Deployment Platforms

  • Frontend: Vercel, Netlify
  • Backend: Railway, Render, Heroku
  • Database: Supabase

πŸ“ˆ API Integration

Qloo API

  • Cultural entity search
  • Recommendation insights
  • Cross-domain affinity

Gemini AI

  • Content generation
  • Cultural explanations
  • Progress insights

Supabase

  • User authentication
  • Data storage
  • Real-time updates

🎨 UI/UX Features

  • πŸŒ™ Dark theme with gradients
  • ✨ Smooth animations (Framer Motion)
  • πŸ“± Responsive design
  • 🎯 Intuitive navigation
  • 🎨 Modern, attractive interface

πŸ”§ Development

Adding New Features

  1. Create components in client/src/components/
  2. Add pages in client/src/pages/
  3. Update API services in client/src/lib/
  4. Add backend endpoints in server/index.js

Database Changes

  1. Create migration in supabase/migrations/
  2. Update types in client/src/lib/supabase.ts
  3. Test with Supabase dashboard

πŸ“ License

MIT License - see LICENSE file for details.

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

Zesty - Discover Your Cultural Horizons! 🌟

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •