Skip to content

Latest commit

 

History

History
164 lines (112 loc) · 4.76 KB

File metadata and controls

164 lines (112 loc) · 4.76 KB

Developer Documentation

Essential guides for contributing to Meteo Weather App


📚 Getting Started

New to the project? Start here:

  1. Setup Guide - Complete installation and setup instructions
  2. Architecture Walkthrough - Codebase tour for new developers
  3. Developer Cheat Sheet - Quick reference for common tasks

📖 Documentation Index

For New Contributors

Project Documentation

Specialized Guides


🚀 Quick Start

# 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 dev

Access at:


📋 Common Commands

# 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 data

See Developer Cheat Sheet for complete command reference


🏗️ Architecture Overview

Frontend (React + Vite) ──► Backend (Express) ──► Database (MySQL)
     Port 3000                 Port 5001            Port 3307

Read Architecture Walkthrough for detailed explanation


📝 Code Style

  • 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


⚠️ Before You Start

Critical Files with Regression Tests

If you modify these files, regression tests run automatically:

  • frontend/src/services/geolocationService.js
  • frontend/src/contexts/LocationContext.jsx
  • backend/services/weatherService.js

Read Regression Prevention before modifying these files


🤝 Contributing Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting (npm test && npm run lint)
  5. Commit with conventional commits (feat:, fix:, etc.)
  6. Push to your fork
  7. Open a Pull Request

See Contributing Guide for detailed workflow


🐛 Troubleshooting

Common issues and solutions:

  • Port conflicts - Use lsof -i :PORT to find and kill processes
  • Docker issues - Run docker-compose down -v to clean up
  • Module errors - Run npm run install:all to reinstall dependencies
  • Database errors - Run npm run db:init to reinitialize

See Troubleshooting Guide for more solutions


💬 Getting Help


📚 External Resources


Happy coding! 🌦️

Last Updated: November 14, 2025