A beautiful, intelligent weekend planning application that helps you organize your perfect weekend with weather-aware suggestions, AI-powered recommendations, and interactive scheduling.
- Interactive Schedule: Drag and drop activities into Saturday and Sunday time slots (morning, afternoon, evening)
- Activity Browser: Browse curated activities by category, theme, and mood with search functionality
- Theme Selection: Choose from multiple weekend themes (Adventure, Relaxation, Social, etc.) to filter activities
- Custom Activities: Add your own activities with full customization including icons, duration, and mood tags
- Activity Management: Easily remove or rearrange activities in your schedule
- Gemini AI Assistant: Provides intelligent weekend planning suggestions based on user preferences and current schedule
- Weather-Aware Activities: Integrates OpenWeatherMap API to suggest activities appropriate to current weather conditions
- Nearby Places Discovery: Discover local activities and places based on user's device location
- Mood Tracking: Activities tagged with moods (energetic, relaxed, adventurous, social, peaceful, creative)
- Export & Share: Generate beautiful PDF posters of your weekend plan or share via social media
- IndexedDB Integration: Professional client-side database for reliable offline storage
- Modern UI: Built with Tailwind CSS and Lucide React icons for a clean, polished interface
- Reusable Components: Modular, reusable UI components (ActivityCard, DropZone, Modal)
- Responsive Design: Optimized for desktop, tablet, and mobile screens
- Smooth Animations: Enhanced user experience with transitions and interactive feedback
- Color-coded Interface: Intuitive visual organization with themed color schemes
- Node.js (v18 or higher)
- npm or yarn package manager
- API keys setup
# Clone the repository
git clone <your-repo-url>
cd weekend-planner
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:5173 to launch the application.
- Sign up at OpenWeatherMap
- Get your API key from the dashboard
- Create
.envfile in root directory:
VITE_WEATHER_API_KEY=your_weather_api_key_here- Get API key from Google AI Studio
- Configure in-app settings when available
- Obtain API key from Ola Developer Console
- Configure in-app settings when available
- Frontend Framework: React 18 + JavaScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Icons: Lucide React
- Drag & Drop: HTML5 Drag & Drop API
- Storage: IndexedDB (via idb library)
- PDF Export: jsPDF
- HTTP Client: Native Fetch API
src/
├── components/ # React components
│ ├── ActivityPanel.jsx # Activity browsing and search
│ ├── SchedulePanel.jsx # Weekend schedule display
│ ├── AIAssistant.jsx # Gemini AI integration
│ ├── DiscoverPanel.jsx # Nearby places discovery
│ ├── RecentPlans.jsx # Saved schedules management
│ ├── ShareModal.jsx # Export and sharing options
│ ├── ThemeSection.jsx # Theme selection
│ ├── SmartSuggestions.jsx # Weather-aware suggestions
│ └── PlannerHeader.jsx # App header with weather
├── lib/
│ ├── constants.js # Activity data, themes, categories
│ ├── db.js # IndexedDB operations
│ └── utils.js # Utility functions
├── App.jsx # Main application component
├── main.jsx # Application entry point
└── index.css # Global styles
- Launch the application and allow location access for weather and nearby places
- Browse activities by category or use the search functionality
- Drag activities from the left panel to your preferred time slots
- Use theme filters to discover curated activity collections
- Add custom activities using the "+" button
- Enable AI suggestions for personalized recommendations
- Check weather-appropriate activities based on current conditions
- Discover nearby places using location services
- Save your schedule to access it later
- Export as PDF for printing or digital sharing
- Clear your schedule to start fresh
npm run dev # Start development server with hot reload
npm run build # Build optimized production bundle
npm run preview # Preview production build locally
npm run lint # Run ESLint for code quality- Local Storage: All user data is stored locally in the browser using IndexedDB
- No Tracking: No analytics or user behavior tracking
- Optional APIs: Weather and location services are optional and user-controlled
- Transparent: Open source code for complete transparency
Weather Not Loading
- Check internet connection
- Verify OpenWeatherMap API key in environment variables
Location Services Not Working
- Ensure browser location permissions are granted
- Check device location settings
Drag & Drop Issues
- Try refreshing the page
- Check browser compatibility
Save/Load Problems
- Clear browser storage and try again
- Check console for error messages