Welcome to Crossword Crafter, a full-stack web application that dynamically generates and solves crossword puzzles using advanced algorithmic techniques. Features an immersive 3D game experience powered by Three.js with animations, scoring system, hints, and victory celebrations!
Developed as part of the Design and Analysis of Algorithms (TCS-409) coursework, this project demonstrates the practical application of backtracking, Trie structures, BFS/DFS, and local search optimization strategies.
Crossword puzzles have long challenged players with language, logic, and pattern recognition. Our project moves beyond static puzzle design to dynamically generate and solve crosswords using efficient algorithms and optimized data structures.
This innovative solution showcases real-world use of algorithms in game-based systems and pushes the boundaries of NP-hard problem-solving using modern tech stacks.
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:8081/api/crossword
- โ Dynamic grid generation with optimal word placement
- โ Clue validation and automatic solver using backtracking
- โ Trie-based fast dictionary lookup (511 words with clues)
- โ Full-stack architecture with Spring Boot and React.js
- โ H2 in-memory database (no external DB setup required!)
- โ REST API backend with Axios communication
- ๐ฒ Three.js 3D Grid - Immersive 3D crossword puzzle with realistic lighting
- โจ Cell Animations - Hover effects, correct/incorrect feedback with colors
- โฑ๏ธ Timer System - Track your solving time
- ๐ Score System - Points with streak multipliers (up to 5x combo!)
- ๐ก Hint System - Get hints when stuck (limited per puzzle)
- ๐ Progress Bar - Visual completion tracking
- ๐ Victory Modal - Confetti celebration on completion!
- ๐ค Watch Solver - Watch the AI solve the puzzle step-by-step
- ๐ 2D/3D Toggle - Switch between classic and 3D modes
- ๐ Gradient themes with purple/blue color scheme
- ๐จ Framer Motion animations throughout
- ๐ฑ Responsive design for all screen sizes
- ๐ Visual feedback for correct/incorrect letters
Frontend:
- React.js 18.x
- Three.js / @react-three/fiber / @react-three/drei
- Framer Motion (animations)
- Canvas Confetti (victory celebration)
- Tailwind CSS
- Axios
Backend:
- Java 23 with Spring Boot 3.5.0
- Spring Web, JPA, Jackson
- H2 In-Memory Database
- Server-Sent Events (SSE) for real-time solver
Architecture:
- Clear separation of concerns with Controllers, Services, and Models
- RESTful APIs using JSON for frontend-backend communication
- Context-based state management in React
- Component-based 3D scene architecture
- Backtracking for word placement and solving
- DFS / BFS for clue navigation and validation
- Trie for efficient dictionary operations
- Grid Optimization to maximize intersections and reduce empty space
- Intersection Algorithm for placing words with shared letters
- Java 23+
- Node.js 18+
- npm or yarn
cd CrosswordFrontendBackend/crossword-solver
./mvnw spring-boot:runBackend runs on http://localhost:8081
cd CrosswordFrontendBackend/frontend/frontend
npm install
npm run devFrontend runs on http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/crossword/puzzle |
Get a random crossword puzzle |
| POST | /api/crossword/generate |
Generate a new puzzle |
| GET | /api/crossword/solve |
SSE stream for watching solver |
Team Name: Divide and Conquer
Inspired by the classic algorithmic paradigm.
| Member | Role | University ID | |
|---|---|---|---|
| Mayank Singh Rawat | Team Lead, Backend Lead | 23011119 | mayanksinghrawat.23011119@gehu.ac.in |
| Anshul Rawat | UI Developer, Spring Boot Configuration | 230114762 | anshulrawat.230114762@gehu.ac.in |
| Krishiv Mohan | Frontend Developer & State Manager | 23011033 | krishivmohan.23011033@gehu.ac.in |
| Aditya Kapruwan | Grid Generator & Clue Validator | 23011050 | adityakapruwan.23011050@gehu.ac.in |
- โ Crossword Grid Engine with dynamic word fitting
- โ React.js-based interactive crossword frontend
- โ Spring Boot backend with API-based clue validation
- โ H2 In-Memory database (zero configuration!)
- โ Fully integrated frontend-backend communication using REST
- โ 3D Game mode with Three.js
- โ Score, timer, hints, and victory celebration
- โ Watch Solver feature with real-time SSE
- โ Responsive UI and clue interaction features
Immersive Three.js powered crossword experience
Animated hero section with floating 3D letters
Confetti celebration on puzzle completion
This project was originally hosted in the team leader's repository:
๐ https://github.com/MayankisG/CrosswordSpring
This project is developed for educational purposes as part of TCS-409 coursework.
Made with โค๏ธ by Team Divide and Conquer