Skip to content

ahmetsezginn/scrabble-project

Repository files navigation

Scrabble Project

A web application that allows users to create and customize crossword puzzles. Users can customize their puzzles, add background images, and save their creations.

🚀 Quick Start

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/ahmetsezginn/scrabble-project.git
    cd scrabble-project
  2. Create and activate Python virtual environment:

    Windows:

    python -m venv venv
    venv\Scripts\activate

    Linux/Mac:

    python -m venv venv
    source venv/bin/activate
  3. Install Python dependencies:

    pip install -r crossword_api-main/requirements.txt
  4. Install Node.js dependencies:

    npm install

Running the Application

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.py

Terminal 2 - Node.js Web Server:

node server.js

After both servers are running, open your browser and navigate to http://localhost:3001

📖 Usage

Features

  • 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

📁 Project Structure

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)

🛠️ Tech Stack

Backend:

  • Node.js with Express.js
  • Python with FastAPI

Frontend:

  • EJS (Embedded JavaScript templates)
  • Vanilla JavaScript
  • CSS

Dependencies:

  • canvas - Canvas API for Node.js
  • ejs - Server-side HTML templating
  • express - Web server framework
  • node-fetch - HTTP requests

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue.

📄 License

This project is licensed under the ISC License.

👤 Author

Ahmet Sezgin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors