A modern, feature-rich Pokedex application built with Next.js 16, TypeScript, and TailwindCSS. Explore, search, and compare Pokemon with a beautiful, responsive interface!
This project is participating in Hacktoberfest 2025! We welcome contributions from developers of all skill levels. Whether you're a seasoned developer or just starting out, there's something for everyone.
- Sign up for Hacktoberfest
- Fork this repository
- Find an issue labeled with
hacktoberfestorgood-first-issue - Create a pull request with your contribution
- Wait for review - we'll review your PR as soon as possible!
- ✅ Check existing issues and PRs to avoid duplicates
- ✅ Follow the code style and conventions used in the project
- ✅ Write clear, concise commit messages
- ✅ Test your changes thoroughly
- ✅ Update documentation if needed
- ✅ Be respectful and constructive in discussions
- 🐛 Bug Fixes: Help us squash bugs!
- ✨ New Features: Add exciting new functionality
- 📚 Documentation: Improve or expand documentation
- 🎨 UI/UX: Enhance the user interface and experience
- ♿ Accessibility: Make the app more accessible
- 🧪 Testing: Add or improve tests
- 🚀 Performance: Optimize code and improve performance
- 🌐 Internationalization: Add support for more languages
- 🔍 Advanced Search: Search Pokemon by name, type, or abilities
- 📊 Detailed Stats: View comprehensive Pokemon statistics
- 🎨 Type-based Themes: Dynamic color schemes based on Pokemon types
- ⭐ Favorites: Save your favorite Pokemon
- 🔄 Compare Mode: Compare multiple Pokemon side by side
- 📱 PWA Support: Install as a Progressive Web App
- 🌓 Dark Mode: Toggle between light and dark themes
- 🎵 Sound Effects: Interactive sound feedback (toggleable)
- ⚡ Lightning Fast: Built with Next.js 15 and Turbopack
- 📈 Evolution Chains: Visualize Pokemon evolution paths
- 🎯 Shiny Forms: View shiny variants of Pokemon
- 🎭 Smooth Animations: GSAP-powered animations
- Node.js >= 24.11.0
- pnpm >= 10.20.0
-
Clone the repository
git clone https://github.com/amariwan/Pokedex.git cd Pokedex -
Install dependencies
pnpm install
-
Run the development server
pnpm dev
-
Open your browser
Navigate to http://localhost:3000
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: TailwindCSS
- UI Components: Radix UI
- State Management: Zustand
- Data Fetching: TanStack Query
- Animations: GSAP
- Testing: Vitest + Playwright
- API: PokeAPI
# Development
pnpm dev # Start development server with Turbopack
pnpm build # Build for production
pnpm start # Start production server
# Code Quality
pnpm lint # Run ESLint
pnpm lint:fix # Fix ESLint errors
pnpm format # Format code with Prettier
pnpm format:check # Check code formatting
pnpm type-check # Run TypeScript type checking
# Testing
pnpm test # Run unit tests
pnpm test:watch # Run tests in watch mode
pnpm test:coverage # Run tests with coverage
pnpm test:e2e # Run E2E tests
pnpm test:all # Run all tests
# Maintenance
pnpm clean # Clean Next.js cache
pnpm clean:all # Clean all generated files
pnpm refresh # Clean and reinstall dependenciesPokedex/
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ │ ├── pokemon/ # Pokemon-specific components
│ │ ├── store/ # State management
│ │ └── ui/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and helpers
│ │ ├── data/ # Static data
│ │ └── __tests__/ # Unit tests
│ ├── stores/ # Zustand stores
│ ├── styles/ # Global styles
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
├── tests/ # E2E tests
└── coverage/ # Test coverage reports
We use Vitest for unit testing and Playwright for end-to-end testing.
# Run unit tests
pnpm test
# Run unit tests with coverage
pnpm test:coverage
# Run E2E tests
pnpm test:e2e# Build and run with Docker Compose
docker-compose upWe love contributions! Please read our Contributing Guidelines before submitting a PR.
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes
- Run tests:
pnpm test:all - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
Before submitting a PR, ensure:
- ✅ All tests pass
- ✅ No ESLint warnings or errors
- ✅ Code is properly formatted
- ✅ TypeScript types are correct
Run this command to check everything:
pnpm checkThis project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Give a ⭐️ if this project helped you or you find it interesting!
Made with ❤️ for Hacktoberfest 2025