A modern weather application built with Next.js and Laravel, featuring real-time weather data, forecasts, and geolocation.
- Current weather conditions display
- 3-day weather forecast
- Temperature unit conversion (Celsius/Fahrenheit)
- City search functionality
- Wind speed and humidity information
- Responsive design for all devices
- Fallback mechanisms for API failures
- Next.js 15.3.1
- TypeScript
- Tailwind CSS
- Lucide React icons
- RippleUI components
- Husky for Git hooks
- Commitlint for enforcing conventional commit messages
- Framer Motion for animations
- Laravel 10+
- PHP 8.1+
- OpenWeatherMap API for weather data
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm, yarn, or pnpm
- PHP (v8.1 or higher)
- Composer
- Git
git clone https://github.com/olivebishop/Weather_app_Test
cd weather-appUsing pnpm:
pnpm installTo add Framer Motion to the project:
pnpm add framer-motionCreate a .env.local file in the root directory with the following variables:
NEXT_PUBLIC_OPENWEATHER_API_KEY=your_openweather_api_key
NEXT_PUBLIC_API_URL=your_backend_api_url
pnpm devThe application will be available at http://localhost:3000
This project uses Husky and commitlint to enforce conventional commit messages. All commit messages must follow this format:
type(scope?): subject
Where:
typecan be: feat, fix, docs, style, refactor, test, chore, etc.scopeis optional and indicates the section of the codebasesubjectis a short description of the change
Examples of valid commit messages:
feat: add temperature unit conversionfix(api): resolve weather data fetch errorsdocs: update installation instructionsstyle: improve header responsiveness