A fun and interactive word guessing game built with React.js and TypeScript. Test your vocabulary skills by guessing letters to reveal hidden words based on given tips!
- About the Project
- Features
- Tech Stack
- Getting Started
- Usage
- Project Structure
- Scripts
- Contributing
- License
This is a classic word guessing game where players attempt to discover a hidden word by guessing one letter at a time. Each challenge provides a helpful tip to guide the player toward the correct answer. The game tracks your attempts and shows which letters have been used, making it both challenging and educational.
- ๐ค Letter-by-letter guessing - Input one letter at a time to reveal the hidden word
- ๐ก Helpful tips - Each word comes with a hint to guide your guesses
- ๐ Attempt tracking - Visual display of remaining attempts (word length + 5 extra tries)
- โ Letter history - See all letters you've used and whether they were correct
- ๐ Restart functionality - Start a new game anytime with confirmation prompt
- ๐จ Clean UI - Intuitive and responsive design with CSS modules
| Technology | Purpose |
|---|---|
| React 19 | UI library for building the interface |
| TypeScript | Type safety and better developer experience |
| Vite | Fast build tool and development server |
| CSS Modules | Scoped styling for components |
| ESLint | Code linting and quality assurance |
| gh-pages | Deployment to GitHub Pages |
Make sure you have the following installed:
- Node.js (v18 or higher recommended)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/eRodrigoVanini/classroom.git
-
Navigate to the project directory
cd classroom -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser and visit
http://localhost:5173
- Read the tip displayed at the top to get a clue about the hidden word
- Type a single letter in the input field
- Click "Confirmar" (Confirm) to submit your guess
- The letter will appear in the word if correct, or be marked in the used letters section
- Keep guessing until you reveal the entire word or run out of attempts
- Click the restart button to play again with a new word
classroom/
โโโ public/ # Static assets
โโโ src/
โ โโโ assets/ # Images and media files
โ โโโ components/ # Reusable UI components
โ โ โโโ Button/ # Confirm button component
โ โ โโโ Header/ # Game header with attempts counter
โ โ โโโ Input/ # Letter input field
โ โ โโโ Letter/ # Individual letter display
โ โ โโโ Letters/ # Used letters tracker
โ โ โโโ Tips/ # Tip display component
โ โโโ utils/ # Utility functions and word data
โ โโโ App.tsx # Main application component
โ โโโ App.module.css # App-specific styles
โ โโโ global.css # Global styles
โ โโโ main.tsx # Application entry point
โโโ index.html # HTML template
โโโ package.json # Dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ vite.config.ts # Vite configuration
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint to check code quality |
npm run deploy |
Deploy to GitHub Pages |
Contributions are welcome! Feel free to:
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available for educational purposes.
Made with โค๏ธ by Rodrigo Vanini