Skip to content

Ilyomix/DressSmart

Repository files navigation

Climode - Weather Clothing Recommendation App

Climode Logo

Your personal weather-based clothing advisor

PWA Ready Next.js TypeScript License Netlify Status

⚠️ Disclamer

  • The code is dirty as hell, as I made this project in less than 48 h - i'll take time (maybe) to clean it

🌟 Features

  • 🌍 Location-Based Weather: Real-time weather data for any location worldwide
  • 👕 Smart Recommendations: AI-powered clothing suggestions based on weather conditions
  • 🌡️ Temperature Preferences: Personalize recommendations based on your temperature sensitivity
  • 🎨 Dynamic UI: Beautiful, responsive interface with city-specific backgrounds
  • 🌐 Multilingual: Supports English, French, Spanish, German, Italian, and Arabic
  • 📱 PWA Support: Install and use offline on any device

image image

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • OpenWeather API key
  • Pexels API key (for city images)

Installation

  1. Clone the repository
git clone https://github.com/yourusername/DressSmart.git
cd DressSmart
  1. Install dependencies
npm install
# or
yarn install
  1. Set up environment variables Create a .env.local file with:
OPENWEATHER_API_KEY=your_openweather_api_key
PEXELS_API_KEY=your_pexels_api_key
_BASE_URL=http://localhost:3000
  1. Start the development server
npm run dev
# or
yarn dev

🛠️ Tech Stack

  • Framework: Next.js 15 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui
  • State Management: React Hooks + Context
  • APIs:
    • OpenWeather (weather data)
    • Pexels (city images)
  • PWA Features: Workbox + Next PWA

🌈 Features in Detail

Weather Data

  • Real-time weather conditions
  • 5-day forecast
  • Temperature, humidity, wind speed, UV index
  • Location-based suggestions

Clothing Recommendations

  • Temperature-appropriate clothing suggestions
  • Layering recommendations
  • Accessory suggestions (umbrella, sunglasses, etc.)
  • Customizable based on personal temperature preferences

User Experience

  • Intuitive interface
  • Smooth animations
  • Offline support
  • Cross-device synchronization
  • Dark mode support

🌍 Internationalization

Currently supports:

  • 🇺🇸 English
  • 🇫🇷 French
  • 🇪🇸 Spanish
  • 🇩🇪 German
  • 🇮🇹 Italian
  • 🇸🇦 Arabic

📱 PWA Features

  • Offline functionality
  • Install prompts
  • Background sync
  • Push notifications (coming soon)
  • Responsive design

🤝 Contributing

Contributions are welcome! Please read our Contributing Guidelines first.

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a pull request

📄 License

This project is public and under MIT LICENSE.

🙏 Acknowledgments