Essential guides for contributing to Meteo Weather App
New to the project? Start here:
- Setup Guide - Complete installation and setup instructions
- Architecture Walkthrough - Codebase tour for new developers
- Developer Cheat Sheet - Quick reference for common tasks
- Setup Guide - Prerequisites, installation, and first run
- Contributing Guide - How to contribute code
- Architecture Walkthrough - Understanding the codebase
- Developer Cheat Sheet - Quick command reference
- Architecture - System design and diagrams
- Troubleshooting - Common issues and solutions
- Regression Prevention - Critical bug prevention
- AGENTS.md - Working with AI agents
- API Architecture Improvements - Centralized API client (P0-P3A)
- Build Validation - Build configuration validation
- Security Audit - Security implementation
- Error Message Style Guide - Error handling standards
# Clone and setup
git clone https://github.com/mbuckingham74/meteo-weather.git
cd meteo-weather
npm run install:all
# Configure environment
cp .env.example backend/.env
# Edit backend/.env with your API keys
# Start development
npm run devAccess at:
- Frontend: http://localhost:3000
- Backend: http://localhost:5001
# Development
npm run dev # Start full stack
npm run dev:frontend # Frontend only
npm run dev:backend # Backend only
# Testing
npm test # Run all tests
npm run lint # Check code style
npm run format # Format code
# Database
npm run db:init # Initialize database
npm run db:seed # Load sample dataSee Developer Cheat Sheet for complete command reference
Frontend (React + Vite) ──► Backend (Express) ──► Database (MySQL)
Port 3000 Port 5001 Port 3307
Read Architecture Walkthrough for detailed explanation
- Frontend: React functional components, ES6+ modules
- Backend: Node.js/Express, CommonJS modules
- Linting: ESLint + Prettier (auto-format on commit)
- Testing: Vitest (frontend), Jest (backend)
See Contributing Guide for detailed style guidelines
If you modify these files, regression tests run automatically:
frontend/src/services/geolocationService.jsfrontend/src/contexts/LocationContext.jsxbackend/services/weatherService.js
Read Regression Prevention before modifying these files
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting (
npm test && npm run lint) - Commit with conventional commits (
feat:,fix:, etc.) - Push to your fork
- Open a Pull Request
See Contributing Guide for detailed workflow
Common issues and solutions:
- Port conflicts - Use
lsof -i :PORTto find and kill processes - Docker issues - Run
docker-compose down -vto clean up - Module errors - Run
npm run install:allto reinstall dependencies - Database errors - Run
npm run db:initto reinitialize
See Troubleshooting Guide for more solutions
- Setup Issues: Check Setup Guide and Troubleshooting
- Architecture Questions: Read Architecture Walkthrough
- Bug Reports: GitHub Issues
- General Questions: GitHub Discussions
- React Docs: https://react.dev/
- Vite Docs: https://vitejs.dev/
- Express Docs: https://expressjs.com/
- MySQL Docs: https://dev.mysql.com/doc/
Happy coding! 🌦️
Last Updated: November 14, 2025