Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Usage Milestone: Time Field for Drupal 8+ Module time_field crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

This module adds a functional Sudoku puzzle to your Drupal site, allowing users to create, edit, view, and solve puzzles. It serves as both a fun game and a demonstration of modern Drupal APIs for developers.

Sudoku is a Drupal 10/11 module that introduces a fully functional Sudoku puzzle content entity. It allows users to create, edit, view, and solve Sudoku puzzles directly within Drupal. The module is both a fun interactive demo of Drupal’s modern APIs and a foundation for anyone building puzzle, game, or educational content systems.

It demonstrates extensive use of Drupal’s Entity API, Form API, AJAX framework, and menu/routing system, while providing a playable Sudoku experience right in your site.

Each Sudoku puzzle includes a grid editor for entering or generating puzzles, automatic JSON serialization for storage, and AJAX-based puzzle generation and solving. After saving a puzzle, users can view it rendered in a styled grid, with optional “Edit” and “Delete” links available to users with appropriate permissions.

The project’s goal is twofold:

  1. To serve as a practical puzzle module that demonstrates Drupal’s flexibility for building game-like applications.
  2. To act as a developer showcase for implementing modern Drupal APIs in a compact, easy-to-understand module.

Features

Custom content entity (sudoku)

  • Adds a new entity type for managing Sudoku puzzles, fully integrated into Drupal’s content administration interface.

Add, Edit, and Delete forms

  • Includes full CRUD support with entity forms that serialize puzzle data automatically.

Interactive grid editor

  • Each puzzle provides a 9×9 grid of input fields for entering numbers, with client-side validation.

AJAX-powered puzzle generation and solving

  • “Generate” and “Solve” buttons dynamically fill or validate the grid without reloading the page.

Custom view renderer

  • Displays Sudoku puzzles in a clean, CSS-styled grid on the canonical entity view page.

Admin listing page

  • Accessible under Content → Sudoku puzzles, with sortable columns for quick management.

Granular permissions

  • Define who can view, create, edit, and delete Sudoku puzzles.

Example of advanced Drupal APIs

  • Makes use of core APIs including the Entity API, Form API, AJAX API, Library API, and routing system — ideal for developers learning Drupal internals.

Post-Installation

Once installed, look under "Content" for "Sudoku puzzles". Clicking on this item will list all Sudoku puzzle entities currently stored on your site. Navigating one level lower to "Add" will create a new puzzle entity, where you can generate a puzzle of varying difficulty, solve the puzzle, and save or delete the entity.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Oct 2025
Latest release
10 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Slowing

Releases

Version Type Core Release date
1.0.x-dev Dev 10–11 Oct 11, 2025