Discover your perfect vacation destination with AI-powered personalized recommendations
VibeFind is a modern travel recommendation app that uses AI to match users with their ideal vacation destinations based on their preferences, personality, and travel style.
- π§ AI-Powered Recommendations: Personalized destination suggestions using Google's Gemini AI
- π Personality Quiz: Interactive quiz to understand your travel preferences
- πΌοΈ Dynamic Images: High-quality destination photos from Unsplash API
- π Destination Explorer: Browse and discover amazing places around the world
- πΎ Save Favorites: Bookmark destinations you love for later reference
- π User Authentication: Secure login and profile management
- π± Responsive Design: Beautiful UI that works on all devices
- π¨ Modern Stack: Built with Next.js 15, React 19, and Tailwind CSS
Try the live demo: VibeFind App (Add your deployment URL here)
- Framework: Next.js 15
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI + shadcn/ui
- Animation: Framer Motion
- AI Integration: Google Gemini AI
- Images: Unsplash API
- Icons: Lucide React
Before you begin, ensure you have installed:
-
Clone the repository
git clone https://github.com/yourusername/vibefind.git cd vibefind -
Install dependencies
npm install # or pnpm install -
Set up environment variables
Create a
.env.localfile in the root directory:# Google Gemini AI API Key GEMINI_API_KEY=your_gemini_api_key_here # Unsplash API Key NEXT_PUBLIC_UNSPLASH_ACCESS_KEY=your_unsplash_access_key_here
-
Get API Keys
Google Gemini AI:
- Visit Google AI Studio
- Create a new API key
- Add it to your
.env.localfile
Unsplash API:
- Visit Unsplash Developers
- Create a new application
- Get your Access Key
- Add it to your
.env.localfile
-
Run the development server
npm run dev # or pnpm dev -
Open your browser
Navigate to http://localhost:3000
vibefind/
βββ app/ # Next.js 13+ app directory
β βββ api/ # API routes
β β βββ recommendations/
β βββ destination/ # Destination detail pages
β βββ explore/ # Explore destinations page
β βββ login/ # Authentication pages
β βββ profile/ # User profile
β βββ quiz/ # Personality quiz
β βββ recommendations/ # AI recommendations page
β βββ globals.css # Global styles
βββ components/ # Reusable React components
β βββ ui/ # shadcn/ui components
β βββ ... # Custom components
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions and configurations
βββ public/ # Static assets
βββ styles/ # Additional styling
- Take the Quiz: Users answer questions about their travel preferences, budget, and interests
- AI Processing: Gemini AI analyzes responses and generates personalized destination recommendations
- Image Enhancement: Unsplash API provides high-quality, relevant images for each destination
- Explore Results: Users can browse recommendations, save favorites, and explore details
- Discover More: Browse the explore page for additional destination inspiration
-
Deploy to Vercel
npm run build npx vercel --prod
-
Set environment variables in your Vercel dashboard:
GEMINI_API_KEYNEXT_PUBLIC_UNSPLASH_ACCESS_KEY
The app can be deployed to any platform that supports Next.js:
-
Connect your repository
- Go to Render Dashboard
- Click "New +" β "Web Service"
- Connect your GitHub repository
-
Configure the deployment
Name: vibefind Branch: main Runtime: Node Build Command: npm install && npm run build Start Command: npm start -
Set environment variables in Render dashboard:
GEMINI_API_KEY= your_gemini_api_keyNEXT_PUBLIC_UNSPLASH_ACCESS_KEY= your_unsplash_api_keyNODE_VERSION= 18 (or higher)
-
Deploy
- Click "Create Web Service"
- Render will automatically build and deploy your app
- Your app will be available at
https://your-app-name.onrender.com
-
Deploy via Git
- Connect your GitHub repository
- Build command:
npm run build - Publish directory:
.next
-
Set environment variables in Netlify dashboard
- Deploy from GitHub
- Connect repository and set environment variables
- Railway will auto-detect Next.js and deploy
| Variable | Description | Required |
|---|---|---|
GEMINI_API_KEY |
Google Gemini AI API key for generating recommendations | β |
NEXT_PUBLIC_UNSPLASH_ACCESS_KEY |
Unsplash API key for fetching destination images | β |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for powerful AI recommendations
- Unsplash for beautiful travel photography
- shadcn/ui for excellent UI components
- Vercel for seamless deployment
If you have any questions or run into issues, please:
- Check the Issues page
- Create a new issue if your problem isn't already listed
- Contact the maintainers
Made with β€οΈ and β by Chimdike John