This PR adds a complete documentation website for OSS Weather and Maestro scripts for automated screenshot generation.
A comprehensive documentation website built with VitePress and ready to be hosted on GitHub Pages.
Location: /docs/
Features:
- Beautiful, responsive design
- Search functionality
- Dark/light mode support
- Mobile-friendly
- Fast static site generation
Content Includes:
- Homepage with donation links prominently displayed
- Getting Started guide
- Installation instructions
- Configuration guide
- API keys setup
- Weather providers comparison
- Complete feature documentation (11 feature pages)
- FAQ section
- Download page
- Basic usage guide
Automated UI testing scripts using Maestro to generate screenshots for documentation.
Location: /docs/maestro/
Scripts (8 flows):
- Main weather view
- Hourly forecast
- Daily forecast
- Weather radar
- Weather map
- Settings
- Astronomy view
- Air quality
Helper Script: /docs/scripts/generate-screenshots.sh - Run all Maestro flows at once
Automatic deployment workflow configured.
Location: /.github/workflows/docs.yml
Deployment:
- Triggered on push to
masterbranch (when docs change) - Can be manually triggered
- Builds VitePress site
- Deploys to GitHub Pages
docs/
βββ .vitepress/
β βββ config.mts # VitePress configuration
βββ public/
β βββ screenshots/ # App screenshots
β βββ logo.png # App logo
β βββ badge_github.png # GitHub download badge
βββ guide/
β βββ getting-started.md
β βββ installation.md
β βββ configuration.md
β βββ api-keys.md
β βββ basic-usage.md
β βββ weather-providers.md
β βββ widgets.md
β βββ faq.md
βββ features/
β βββ index.md # Features overview
β βββ weather-data.md
β βββ weather-radar.md
β βββ hourly-charts.md
β βββ daily-forecasts.md
β βββ weather-map.md
β βββ weather-comparison.md
β βββ astronomy.md
β βββ air-quality.md
β βββ home-widgets.md
β βββ smartwatch.md
βββ maestro/ # Maestro screenshot scripts
β βββ 01_main_view.yaml
β βββ 02_hourly_forecast.yaml
β βββ 03_daily_forecast.yaml
β βββ 04_weather_radar.yaml
β βββ 05_weather_map.yaml
β βββ 06_settings.yaml
β βββ 07_astronomy.yaml
β βββ 08_air_quality.yaml
β βββ README.md
βββ scripts/
β βββ generate-screenshots.sh
βββ index.md # Homepage
βββ download.md # Download page
βββ package.json # VitePress dependencies
βββ README.md # Docs development guide
cd docs
npm install
npm run docs:devVisit http://localhost:5173 to view the site.
cd docs
npm run docs:buildBuilt site will be in docs/.vitepress/dist
Prerequisites:
- Install Maestro:
curl -Ls "https://get.maestro.mobile.dev" | bash - Have OSS Weather installed on a connected device or emulator
- Ensure device is connected:
adb devices
Generate all screenshots:
./docs/scripts/generate-screenshots.shGenerate single screenshot:
maestro test docs/maestro/01_main_view.yamlScreenshots will be saved to docs/public/screenshots/
- Go to repository Settings β Pages
- Under "Build and deployment":
- Source: GitHub Actions
- The workflow will automatically deploy when you push to
master
The site will be available at: https://akylas.github.io/oss-weather/
You can manually trigger deployment:
- Go to Actions tab
- Select "Deploy Documentation" workflow
- Click "Run workflow"
The homepage prominently features donation links:
- GitHub Sponsors
- Patreon
- Liberapay
- Buy Me a Coffee
- PayPal
All links are configured based on .github/FUNDING.yml
- Edit markdown files in
docs/ - Test locally:
cd docs && npm run docs:dev - Commit and push to
master - GitHub Actions will automatically deploy
- Create new
.mdfile in appropriate directory - Add to sidebar in
docs/.vitepress/config.mts - Link from relevant pages
Edit docs/.vitepress/config.mts to customize:
- Colors
- Navigation
- Logo
- Footer
- Search settings
Maestro is a mobile UI testing framework that allows you to:
- Automate UI interactions
- Generate screenshots
- Test app flows
- Record UI tests visually
Edit .yaml files in .maestro/ to:
- Change element selectors
- Adjust wait times
- Modify screenshot locations
- Add new flows
For interactive flow creation:
maestro studioThis opens a UI where you can:
- Inspect app elements
- Build flows visually
- Test selectors
- Export YAML
To generate screenshots in CI:
- Add screenshot generation to release workflow
- Use GitHub Actions with Android emulator
- Run Maestro scripts
- Commit screenshots back or upload as artifacts
Example addition to .github/workflows/release.yml:
- name: Setup Maestro
run: curl -Ls "https://get.maestro.mobile.dev" | bash
- name: Generate Screenshots
run: ./scripts/generate-screenshots.sh- Total Pages: 25+
- Guide Pages: 8
- Feature Pages: 12
- Words: ~35,000+
- Maestro Flows: 8
- Screenshots: 6 (existing) + 8 (Maestro can generate)
- β App overview
- β Feature highlights (12 features)
- β Donation section prominently displayed
- β Sponsor showcase
- β Download links for all platforms
- β Beautiful hero section
- β Comprehensive guides
- β Feature documentation
- β FAQ section
- β API keys setup
- β Weather providers comparison
- β Troubleshooting tips
- β Maestro automation scripts
- β 8 different app views
- β Automated generation
- β Ready for localization
- β GitHub Actions workflow
- β Automatic deployment
- β Manual trigger option
- β Build optimization
To contribute:
- Fork the repository
- Make changes to documentation
- Test locally
- Submit pull request
Documentation follows:
- Markdown format
- Clear, concise writing
- Examples and screenshots
- Consistent structure
Issue: VitePress build errors Solution:
- Check for broken links
- Verify all referenced files exist
- Run
npm run docs:buildlocally to debug
Issue: Maestro scripts fail Solution:
- Verify device connected:
adb devices - Check app is installed:
adb shell pm list packages | grep weather - Update element selectors if app UI changed
- Use Maestro Studio to debug
Issue: Site not accessible Solution:
- Check Actions tab for deployment status
- Verify Pages is enabled in repository settings
- Check workflow permissions
- Ensure
GITHUB_TOKENhas necessary permissions
Potential improvements:
- Add video demos
- Multi-language documentation
- Interactive examples
- Blog section for updates
- API documentation
- Developer guide
- Contributing guide
- Code of conduct
- More Maestro flows for all features
- Automated screenshot localization
Documentation is released under the same license as the main project (MIT License).
Questions? Open an issue or check the docs at the repository.