A web application that allows users to create and customize crossword puzzles. Users can customize their puzzles, add background images, and save their creations.
-
Clone the repository:
git clone https://github.com/ahmetsezginn/scrabble-project.git cd scrabble-project -
Create and activate Python virtual environment:
Windows:
python -m venv venv venv\Scripts\activate
Linux/Mac:
python -m venv venv source venv/bin/activate -
Install Python dependencies:
pip install -r crossword_api-main/requirements.txt
-
Install Node.js dependencies:
npm install
You need to run two servers in separate terminals:
Terminal 1 - Python API Server:
# Activate virtual environment first
# Windows: venv\Scripts\activate
# Linux/Mac: source venv/bin/activate
python crossword_api-main/main.pyTerminal 2 - Node.js Web Server:
node server.jsAfter both servers are running, open your browser and navigate to http://localhost:3001
- Crossword Puzzle Editor: Create and edit crossword puzzles with custom clues and answers
- Customization Options: Add background images and adjust puzzle contrast
- Image Export: Save your puzzles as images for later use
- Multiple Letter Styles: Choose from 5 different letter tile designs
scrabble-project/
├── controllers/ # Application logic controllers
│ ├── imageController.js
│ ├── puzzleController.js
│ └── puzzleControllerV1_1.js
├── crossword_api-main/ # Python crossword generation API
│ ├── main.py
│ ├── crossword.py
│ └── requirements.txt
├── public/ # Static files
│ ├── css/
│ ├── images/
│ └── js/
├── routers/ # Express route handlers
│ ├── imageRouter.js
│ ├── puzzleRouter.js
│ └── puzzleRouterV1_1.js
├── views/ # EJS template files
│ ├── index.ejs
│ └── scrableHomeV1_1.ejs
├── server.js # Main Node.js entry point
├── setup.bat # Installation script (Windows)
└── setup.sh # Installation script (Linux/Mac)
Backend:
- Node.js with Express.js
- Python with FastAPI
Frontend:
- EJS (Embedded JavaScript templates)
- Vanilla JavaScript
- CSS
Dependencies:
canvas- Canvas API for Node.jsejs- Server-side HTML templatingexpress- Web server frameworknode-fetch- HTTP requests
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue.
This project is licensed under the ISC License.
Ahmet Sezgin
- GitHub: @ahmetsezginn