PokeGoBreeze is a comprehensive, feature-rich web application designed for Pokémon GO trainers of all levels. It provides an extensive suite of tools and resources to help players optimize their gameplay, build competitive teams, analyze battles, and make informed decisions. The application features real-time data synchronization with the latest Pokémon GO game mechanics, an intuitive user interface with dark/light theme support, and powerful calculators for various gameplay scenarios.
Key Highlights:
- 🎮 Complete Pokédex with 900+ Pokémon and detailed statistics
- ⚔️ Advanced PVP battle simulator with league rankings
- 📊 Comprehensive damage, DPS/TDO, and stats calculators
- 🌟 Real-time game data updates
- 🎨 Beautiful, responsive UI with theme customization
- ⚡ Fast performance with optimized loading and caching
- 📱 Mobile-friendly responsive design
- Core: React 18.2.0 with TypeScript 5.5.3
- Build Tool: Vite 5.4.21 (migrated from Webpack for faster builds)
- State Management:
- Redux 4.2.0 with Redux Toolkit patterns
- Redux Thunk for async operations
- Redux Persist with encrypted storage
- Routing: React Router v6.20.0
- Component Libraries:
- Material UI (MUI) v5 - Primary UI framework
- Styled Components 6.1.8
- Styling System:
- SCSS/Sass 1.83.0 with modern @use syntax
- Tailwind CSS 3.4.17 for utility classes
- Custom theming system with dark/light modes
- PostCSS with Autoprefixer
- Data Visualization:
- React Data Table Component for data grids
- React XArrows for visual connections
- Client Storage: LocalForage with IndexedDB (localStorage fallback)
- Encryption: Crypto-js AES encryption for persisted state
- Data Persistence: Redux Persist with encrypted serialization
- Build System: Vite with custom configuration
- Code splitting and lazy loading
- Chunk optimization for vendor libraries
- Terser minification for production
- Node.js polyfills (crypto, stream, buffer, util)
- Code Quality:
- ESLint 8.57.0 with TypeScript support
- Prettier 3.2.5 for code formatting
- Stylelint 15.11.0 for SCSS/CSS linting
- Pre-commit hooks
- Testing:
- Jest with React Testing Library
- Testing Library User Event
- TypeScript:
- Strict type checking
- Custom type definitions
- Path aliases (@/ for src/)
- Loading Strategies:
- Debounced loading patterns
- Lazy component imports
- Redux DevTools optimization for large states
- Action sanitization and denylist
- Build Optimization:
- Vendor code splitting (react, redux, mui, etc.)
- Tree shaking and dead code elimination
- CSS minification and optimization
- Asset optimization and compression
- Hosting:
- Primary: Firebase Hosting
- Secondary: Vercel
- Containerization: Docker support with docker-compose
- CI/CD:
- GitHub Actions for automated workflows
- Vercel integration for preview deployments
- Analytics:
- Vercel Analytics
- Vercel Speed Insights
- Web Vitals tracking
/src
├── assets # Static assets, images, global styles and theme definitions, and icons
├── components # Reusable UI components
├── core # Core functionality and utilities
├── data # Static data files and game data
├── enums # TypeScript enumerations
├── pages # Application pages and routes
│ ├── Move # Move details and information
│ ├── News # Game news and updates
│ ├── PVP # PVP battle simulator and rankings
│ ├── Pokedex # Pokémon listing and information
│ ├── Pokemon # Individual Pokémon details
│ ├── Search # Search functionality for Pokémon/moves/types
│ ├── Sheets # Data sheets (DPS/TDO, rankings)
│ ├── Sticker # Sticker collection
│ ├── Tools # Various calculators and tools
│ ├── TypeEffect # Type effectiveness charts
│ └── Weather # Weather boost information
├── services # API services and data fetching
├── store # Redux store configuration
│ ├── actions # Redux actions
│ ├── effects # Side effects and async logic
│ ├── reducers # State reducers
│ └── selectors # State selectors
└── util # Utility functions and helpers
Main hub displaying the complete Pokémon database with filtering, sorting, and search capabilities. Browse through 900+ Pokémon with detailed stats, types, and quick access to individual Pokémon pages.
Latest Pokémon GO news, updates, events, and announcements. Stay informed about new features, special events, and game changes.
Advanced Pokémon search with multiple filters including:
- Name, number, type, and generation
- Stats ranges (HP, Attack, Defense)
- Evolution stages and families
- Regional availability and forms
Comprehensive move database search with filters for:
- Move type and category (Fast/Charged)
- Power, energy, and duration
- DPS and EPS calculations
- PVP and PVE effectiveness
Type effectiveness lookup and analysis. Explore type matchups, strengths, and weaknesses for strategic team building.
In-depth information for individual Pokémon including:
- Base stats, CP, and HP calculations
- Type effectiveness chart
- Evolution chain and requirements
- Best movesets for PVE and PVP
- Shiny availability and forms
- Weather boosts and counters
Detailed move information with:
- Power, energy, and duration statistics
- Type and category
- DPS/EPS calculations
- List of Pokémon that can learn the move
- PVP and PVE viability ratings
Interactive type matchup chart showing:
- Super effective and not very effective combinations
- Immune and resistant types
- Quick reference for battle strategy
Overview of all PVP battle leagues with CP limits, rules, and meta information.
Simulate battle damage between any two Pokémon:
- Select attacker and defender
- Choose moves and weather conditions
- Calculate exact damage per attack
- Account for STAB, type effectiveness, and stats
Look up and compare battle statistics across multiple Pokémon for competitive analysis.
Central hub for all PVP-related tools and resources.
League-specific rankings for:
- Great League (1500 CP)
- Ultra League (2500 CP)
- Master League (Unlimited) Sorted by performance metrics, TDO, and viability.
Pre-built team compositions and meta teams for each league. Analyze team synergy, coverage, and counters.
Real-time battle simulator allowing you to:
- Select two Pokémon with custom IVs
- Choose movesets and shields
- Simulate turn-by-turn battles
- Analyze win conditions and optimal strategies
Detailed PVP performance analysis for specific Pokémon including:
- League rankings and ratings
- Best IV spreads for each league
- Key matchups and counters
- Optimal move combinations
- Breakpoint and bulkpoint calculations
Comprehensive damage rankings showing:
- Damage Per Second (DPS) for all Pokémon
- Total Damage Output (TDO) calculations
- Best attackers by type
- Raid and gym battle recommendations
Global Pokémon rankings by base stats:
- Highest Attack, Defense, HP
- Overall stat product
- CP potential at different levels
- Great/Ultra League stat product rankings
Detailed statistics table with sortable columns for comparing Pokémon performance metrics.
Reverse IV calculator to find possible IV combinations from:
- CP and HP values
- Pokémon level
- Appraisal information Useful for checking newly caught or traded Pokémon.
Calculate exact stats for any Pokémon at any level:
- Input IVs (Attack, Defense, HP)
- Select Pokémon level
- Get resulting CP, HP, and stats
- Compare different IV combinations
Raid battle optimizer helping you:
- Select raid boss and tier
- Build optimal counter teams
- Calculate time to win
- Determine minimum number of trainers needed
Calculate various in-game points and rewards for activities like raids, catches, and tasks.
Calculate probability of catching Pokémon based on:
- Pokémon species and level
- Ball type (Poké Ball, Great Ball, Ultra Ball)
- Berries used (Razz, Golden Razz, Silver Pinap)
- Throw quality (Nice, Great, Excellent)
- Medal bonuses
Complete guide to weather effects showing:
- Pokémon types boosted by each weather
- Increased CP ranges for weather-boosted spawns
- Best Pokémon to catch in each weather
- Weather-specific raid recommendations
Browse and track the complete collection of in-game stickers, including special event stickers and their availability.
- 🌓 Theme System: Toggle between light and dark modes with persistent preference
- 📱 Responsive Design: Optimized for desktop, tablet, and mobile devices
- ⚡ Performance: Fast page loads with optimized caching and code splitting
- 🔄 Auto-sync: Regular updates to match the latest game data
- 💾 Offline Support: Core features work offline with cached data
- 🔐 Secure Storage: Encrypted local data storage for user preferences
- 🎯 Smart Search: Fuzzy search and autocomplete for quick navigation
- 📊 Data Tables: Sortable, filterable tables with export capabilities
- Provide the most accurate and up-to-date Pokémon GO information
- Offer comprehensive tools that enhance player experience and strategy
- Maintain an intuitive, responsive UI accessible to all player levels
- Ensure compatibility with the latest Pokémon GO game mechanics and updates
- Data Accuracy: Sync with official game data within 24 hours of updates
- Tool Completeness: Cover all major gameplay aspects (catching, battling, raids, PVP)
- Performance: <2s initial load time, <500ms for subsequent interactions
- Accessibility: Support all modern browsers and devices
- Node.js: v18.0.0 or higher
- npm: v8.0.0 or higher
- Git: For cloning the repository
- Clone the repository
git clone https://github.com/WHIZENx/PokeGoBreeze.git
cd PokeGoBreeze- Install dependencies
npm install- Set up environment variables
Create a config.sh file in the root directory (or set environment variables):
# config.sh
export REACT_APP_POKEGO_BREEZE_DB_URL="your_database_url"
export REACT_APP_TOKEN_PRIVATE_REPO="your_token"
export REACT_APP_ENCRYPTION_KEY="your_encryption_key"
export REACT_APP_ENCRYPTION_SALT="your_encryption_salt"
# ... other environment variablesNote: See .env.example for all required environment variables.
Start the development server (runs on http://localhost:9000):
npm run developThe development server includes:
- ⚡ Hot Module Replacement (HMR)
- 🔍 ESLint and Stylelint real-time checking
- 🎨 SCSS preprocessing
- 🔧 Source maps for debugging
Other development commands:
# Run tests
npm test
# Lint code (ESLint + Stylelint)
npm run lint
# Format code (Prettier + Stylelint)
npm run format
# Lint code only
npm run lint:code
# Lint styles only
npm run lint:style
# Format code only
npm run format:code
# Format styles only
npm run format:styleBuild for production:
npm run deployThis command will:
- Run linting checks
- Build optimized production bundle with Vite
- Generate sitemap for SEO
- Output to
dist/directory
Manual build (without linting):
npm run prebuild # Clean dist folder
npm run build # Build and generate sitemapPreview production build locally:
# After building, you can preview the production build
npx vite preview --port 9000Development with Docker:
# Build and start development container
docker-compose upProduction with Docker:
# Build production image
docker build -f Dockerfile -t pokego-breeze:latest .
# Run production container
docker run -p 80:80 pokego-breeze:latest# Install Firebase CLI
npm install -g firebase-tools
# Login to Firebase
firebase login
# Deploy to Firebase
firebase deploy# Install Vercel CLI
npm install -g vercel
# Deploy to Vercel
vercel --prod| Script | Description |
|---|---|
npm start |
Start development server (legacy React Scripts) |
npm run develop |
Start Vite development server on port 9000 |
npm run build |
Build production bundle and generate sitemap |
npm run deploy |
Lint, build, and prepare for deployment |
npm test |
Run test suite with Jest |
npm run lint |
Run ESLint and Stylelint |
npm run format |
Format code with Prettier and Stylelint |
npm run generate:sitemap |
Generate sitemap.xml for SEO |
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Port already in use:
# Kill process on port 9000 (macOS/Linux)
lsof -ti:9000 | xargs kill -9
# Or change port in vite.config.tsClear Vite cache:
rm -rf node_modules/.vite
npm run developBuild errors:
# Clean install
rm -rf node_modules package-lock.json
npm installContributions are welcome and greatly appreciated! Whether you're fixing bugs, adding features, or improving documentation, your help makes PokeGoBreeze better for everyone.
-
Fork the repository
- Click the "Fork" button at the top right of the repository page
-
Clone your fork
git clone https://github.com/your-username/PokeGoBreeze.git cd PokeGoBreeze -
Create a new branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes
- Follow the existing code style and conventions
- Add tests if applicable
- Update documentation as needed
-
Run quality checks
npm run lint # Check for linting errors npm run format # Format code npm test # Run tests
-
Commit your changes
git add . git commit -m "feat: add new feature" # Use conventional commits
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Select your fork and branch
- Describe your changes in detail
- Code Style: Follow the existing code style. Use ESLint and Prettier configurations provided.
- Commit Messages: Use Conventional Commits format:
feat:for new featuresfix:for bug fixesdocs:for documentation changesstyle:for formatting changesrefactor:for code refactoringtest:for adding testschore:for maintenance tasks
- Testing: Add tests for new features when applicable
- Documentation: Update README and code comments as needed
- Branch Naming: Use descriptive names like
feature/pvp-team-builderorfix/damage-calculator-bug
- 🐛 Bug Fixes: Report and fix bugs
- ✨ New Features: Suggest and implement new tools or features
- 📊 Data Updates: Help keep Pokémon data current with game updates
- 🎨 UI/UX Improvements: Enhance the user interface and experience
- 📚 Documentation: Improve code documentation and user guides
- ♿ Accessibility: Make the app more accessible to all users
- 🌐 Localization: Add support for additional languages
- ⚡ Performance: Optimize load times and rendering
When reporting issues, please include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Browser and device information
- Console errors (if any)
- 🌐 Multi-language Support: Internationalization (i18n) for multiple languages
- 📊 Advanced Analytics: Detailed statistics and performance tracking
- 🤖 Team Builder AI: AI-powered team composition suggestions
- 📱 Progressive Web App: Full offline support with service workers
- 🔔 Notifications: Event reminders and update notifications
- 💾 Cloud Sync: Cross-device data synchronization
- 🎮 Interactive Tutorials: Guided tours for new users
- 🏆 Community Features: Share teams and strategies with other players
- ⚡ Migrated from Webpack to Vite for faster builds
- 🎨 Updated to modern SCSS @use syntax
- 🔐 Enhanced security with encrypted storage
- 📊 Improved Redux DevTools performance
- 🚀 Optimized bundle size with better code splitting
- 🎯 Enhanced TypeScript type safety
PokeGoBreeze is built with performance in mind:
- Fast Initial Load: < 2s on average network connection
- Code Splitting: Vendor and route-based splitting for smaller bundles
- Lazy Loading: Components load on-demand
- Optimized Assets: Compressed images and minified code
- Efficient Caching: Smart caching strategies for static assets
- Redux Optimization: Memoized selectors and normalized state
- Tree Shaking: Unused code is eliminated from production builds
- Encrypted Storage: User data is encrypted using AES encryption
- Environment Variables: Sensitive data stored securely
- No Sensitive Data Collection: App doesn't collect personal information
- HTTPS Only: All production deployments use HTTPS
- Regular Updates: Dependencies are regularly updated for security patches
- Pokémon GO: © 2016-2024 Niantic, Inc. © 2016-2024 Pokémon. © 1995-2024 Nintendo/Creatures Inc./GAME FREAK inc.
- Data Sources: Thanks to the Pokémon GO community for data contributions
- Open Source Libraries: Built with amazing open-source tools and libraries
- Contributors: Special thanks to all contributors who have helped improve this project
No, PokeGoBreeze is an independent, community-driven project and is not affiliated with Niantic or The Pokémon Company.
We aim to update Pokémon data within 24-48 hours of official game updates.
Yes, core features work offline with cached data. However, the latest updates require an internet connection.
Yes, all local data is encrypted using AES encryption. We don't collect or store personal information on external servers.
Absolutely! Please open an issue on GitHub with your feature request.
Open an issue on GitHub with details about the bug, including steps to reproduce it.
This project is licensed under the MIT License - see the LICENSE file for details.
This project uses several open-source libraries. See package.json for a complete list.
- 🌐 Live Site (Firebase): pokego-breeze.web.app
- 🌐 Alternative Site (Vercel): poke-go-breeze.vercel.app
- 💻 GitHub Repository: WHIZENx/PokeGoBreeze
- 📝 Issues & Bug Reports: GitHub Issues
- 📢 Feature Requests: GitHub Discussions
If you find this project helpful, please consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs and issues
- 💡 Suggesting new features
- 🤝 Contributing code or documentation
- 📢 Sharing with other Pokémon GO trainers
Made with ❤️ by the Pokémon GO community
Pokémon and Pokémon GO are trademarks of Nintendo, Creatures Inc., and GAME FREAK inc.