61 lines
1.6 KiB
Markdown
61 lines
1.6 KiB
Markdown
# 🌤️ Weather or Not
|
|
|
|
A Next.js web app that helps you decide whether to ride your motorcycle or mow the lawn based on weather conditions.
|
|
|
|
## Features
|
|
|
|
- **Real-time weather** from Open-Meteo API (free, no API key needed)
|
|
- **Motorcycle ride checker** — evaluates temp, precipitation, wind, humidity, road conditions
|
|
- **Lawn mowing checker** — weather + tracks when you last mowed (cooldown system)
|
|
- **Record activities** — mark when you've done something to avoid daily suggestions
|
|
- **Beautiful dark UI** with status indicators and detailed reasoning
|
|
- **Client-side config** — set your location and thresholds in localStorage
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Run development server
|
|
npm run dev
|
|
|
|
# Open http://localhost:3000
|
|
```
|
|
|
|
## Build & Deploy
|
|
|
|
```bash
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Start production server
|
|
npm start
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Settings are stored in your browser's localStorage. Default location is Livonia, Michigan.
|
|
|
|
To change location or thresholds, edit `src/lib/storage.ts` or add a settings page.
|
|
|
|
## Adding New Activities
|
|
|
|
1. Create a new evaluator function in `src/lib/activities.ts`
|
|
2. Add it to the `/api/activities/route.ts` endpoint
|
|
3. Create a new component in `src/app/components/`
|
|
4. Add it to `src/app/page.tsx`
|
|
|
|
## Tech Stack
|
|
|
|
- **Next.js 14** — App Router, API routes
|
|
- **TypeScript** — Full type safety
|
|
- **Tailwind CSS** — Styling
|
|
- **Open-Meteo** — Free weather data
|
|
- **localStorage** — Client-side config & history
|
|
- **Server filesystem** — Server-side activity history
|
|
|
|
## License
|
|
|
|
MIT
|