Back to Projects
Applied AI Project
2026

PrediNator

A Django-powered Akinator-style game driven by a decision tree classifier and a live feedback loop.

Decision tree gameplay
Dynamic retraining
CI/CD ready
Overview

PrediNator is a guessing game with a decoupled machine learning core and Django interface. It asks yes, no, and don't know questions, makes interpretable predictions, and learns new characters through user feedback.

Language DNA

Python

PrediNator uses Python to keep the game engine, training loop, and web application straightforward and interpretable, which suits the decision-tree-based design of the product.

Djangoscikit-learnPostgreSQLRenderGitHub Actions
Game engine plus web app split
1

PrediNator uses a decoupled architecture between the ML core and the Django web layer.

2

The prediction engine is built around a decision tree classifier, which keeps the logic fast and interpretable for a question-driven game.

3

The project also includes data-generation and model-training scripts, not just the runtime interface.

Gameplay and learning

Runs an Akinator-style yes, no, and don't-know flow to narrow down possible characters.

Lets users add new characters when the model fails to guess correctly.

Allows new distinguishing questions to be incorporated so the system improves over time.

Deployment and operations

Supports production deployment with Gunicorn, PostgreSQL, and WhiteNoise.

Includes CI/CD workflow support for testing and deployment to platforms like Render.

Keeps local development simple with virtualenv, migrations, and data bootstrapping scripts.

System design

Production setup, CI/CD, and future scalability concerns are already part of the way the project is framed.

Product capabilities

Separates the ML game logic from the web app so the interface and training flow stay modular.

Lets users teach the game new characters and new distinguishing questions when a guess misses.

Includes a production-oriented deployment setup with Gunicorn, PostgreSQL, WhiteNoise, Render hooks, and GitHub Actions.

Workflow

Learning loop

1

Start from a seeded dataset of characters and questions.

2

Run the decision-tree gameplay loop inside the Django application.

3

When guesses fail, collect new attributes or questions and retrain the model.

Execution model

The strongest part of the product is the feedback loop: gameplay and learning are tied together rather than treated as separate concerns.

Actions
Case study

Core idea

PrediNator is built around an interpretable game loop where the reasoning path stays visible enough to understand and improve. A decision tree works well for that goal because the product depends on a sequence of narrowing questions rather than opaque pattern matching alone. That keeps the gameplay responsive while making the underlying prediction logic easy to extend.

Learning loop

The learning loop is what gives the project staying power beyond a one-time demo. When the system fails to identify a character, it can capture new information, add differentiating questions, and improve the model over time. That means the web experience and the training process reinforce each other instead of living in separate parts of the product.