A modern, cross-platform Charades application built with React Native and Expo. Challenge your friends to guess the word on the card that’s on your head from their clues before the timer runs out!
- Multi-Platform Support: Runs seamlessly on Android, iOS, and Web.
- Game Mode:
- Tilt Controls: Tilt down for "Correct", tilt up for "Pass" (Mobile only).
- Touch Controls: Accessible on-screen buttons for all platforms.
- Countdown & Timer: Configurable round durations (60s, 90s, 120s).
- Category Management:
- Create custom categories.
- Edit and manage your own word lists.
- Pre-seeded with popular categories: "Movies", "Animals", and "Actions".
- Rich Feedback: Haptic feedback (vibrations) and sound effects for gameplay events.
- Offline First: Fully functional without an internet connection using local SQLite storage.
- Framework: Expo (React Native)
- Language: TypeScript
- Navigation: React Navigation v7
- UI Library: React Native Paper (Material Design)
- Persistence: Expo SQLite
- Sensors: Expo Sensors (Accelerometer)
-
Clone the repository:
git clone https://github.com/darekdeo/charades.git cd charades -
Install dependencies:
npm install
-
Start the application:
npm start
- Press
afor Android (requires emulator or device). - Press
ifor iOS (requires simulator or device). - Press
wfor Web.
- Press
The project uses Jest and React Native Testing Library for unit and component testing.
Run the test suite:
npm testContributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'feat: Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
Note: All changes are verified via GitHub Actions CI.
This project is licensed under the MIT License - see the LICENSE file for details.