
Build your own Dream11 brain. A Flask + Random Forest app that predicts fantasy points for 229 FIFA 2026 players and then solves for the mathematically best XI under your budget. Full source code included.
Python | Flask | scikit-learn | PuLP | Pandas | Plotly | Bootstrap 5 | Jinja2
You pick a budget. You pick a formation. The app hands you eleven players that squeeze the maximum predicted fantasy points out of that money. That's the whole pitch.
Under the hood two very different things are happening. First, a trained Random Forest model looks at each player's recent form — last three matches of goals, assists, minutes, shots on target, pass accuracy, tackles, distance covered, match rating — and guesses how many fantasy points they'll score in their next game. Then a solver called PuLP takes those 229 predictions and treats squad selection like a knapsack problem: maximise total predicted points, don't cross the budget, respect the formation, and land on exactly eleven names.
That second part is what makes examiners sit up. Most machine learning final year projects stop at "here's my prediction, thanks." This one takes the prediction and feeds it into an actual optimisation algorithm. Prediction plus operations research in one repo. Your classmates will have sentiment analysis on movie reviews. You'll have something people argue about at lunch.
Pick any name from the dropdown — Haaland, Bellingham, whoever — and you get a predicted score for their next match plus an interactive Plotly chart tracking their fantasy points, goals and assists across the season. The chart is real Plotly, not a screenshot. You can hover, zoom, isolate a series.
Drag the budget slider anywhere from €50M to €500M, choose 4-4-2, 4-3-3, 3-5-2 or 3-4-3, hit optimize. PuLP runs an Integer Linear Programming solve and returns the squad, a results table, a bar chart of contributions, and a progress bar showing how much of your budget got used. On a normal laptop it comes back in under two seconds.
Fantasy points distribution histogram, position-wise box plots, top 15 player ranking, a correlation heatmap, and a goals-versus-fantasy-points scatter. Five charts. All of them screenshot straight into your project report without any extra work.
13,397 match records covering 229 players from the 2025/26 Champions League season, sitting in fifa2026_player_performance_clean.csv. Already cleaned. Already feature-engineered into 16 columns including rolling three-match averages, a lag feature for the previous match, and cumulative goal and assist counts.
Random Forest, Gradient Boosting, XGBoost and LightGBM were all trained on the same split, then compared on MAE, RMSE, test R² and 5-fold cross-validated R². Random Forest won. That comparison table is already in Fantasy_XI_Optimizer_Training.ipynb and it's exactly the kind of table that fills a "Results and Discussion" chapter.
Two endpoints — /api/predict/<player_name> for predictions and a POST to /api/optimize for squads. If your examiner asks whether the backend is separated from the frontend, open Postman and show them. Takes ten seconds and looks very good.
The hard part first, because you should know before you buy. Random Forest's test R² is 0.0384. That's low, and if your guide is sharp they will circle it in red pen. Here's the honest answer, and it's a good one: match-to-match fantasy football is genuinely close to random. A striker who scored a hat-trick on Tuesday might get subbed at halftime on Saturday. What the model actually beats is the naive baseline, and the MAE of 2.44 points means predictions land within about half a goal's worth of reality. Say that in your viva, mention that all four models clustered in the same range which confirms it's a data ceiling and not a modelling mistake, and you've turned your weakest number into evidence that you understood the problem. Trust me, that answer scores better than a fake 0.95 R².
Now the easy part. The optimizer sounds terrifying — Integer Linear Programming, constraint satisfaction, all of that. It's about thirty lines of PuLP inside app.py. Declare binary variables for each player, write the objective, add three constraints, call solve. That's it. You'll understand it in one sitting.
Fantasy sports platforms are the obvious one. Dream11, MPL, FPL — the auto-pick suggestion features on those apps run on roughly this logic, just with more data behind them.
But the pattern travels further than football. Swap players for stocks and budget for capital and you have portfolio construction. Swap them for delivery routes and you have logistics planning. Swap them for employees and shifts and you have workforce scheduling. Any problem shaped like "pick a limited set of things under constraints to maximise a predicted value" is the same maths. Scouting departments at actual clubs use versions of this for transfer shortlists under a wage cap.
If you're a student who needs a working project for your college submission, final-year project, semester project, internship, or academic demonstration, this is for you. Whether you're studying BCA, B.Tech, MCA, M.Tech, Computer Science, IT, AI, Data Science, or another related field, you can choose a project that fits your requirements. If you need the source code, project report, documentation, or help setting up and running the project, CodeAj gives you the resources and support to get started faster.
Specifically worth it if your syllabus mentions optimisation, operations research, or decision support systems — this covers those units and the machine learning unit at once. Also good if you want a demo that a non-technical panel member instantly understands. Everyone gets fantasy cricket.
You get the complete codebase, the trained .pkl model files so you don't have to retrain anything on day one, the cleaned dataset, the full Jupyter training notebook, and a project report you can adapt to your college's format. If the app throws an error at 11 PM the night before submission, message us — setup help is part of what you paid for, not an upsell. Browse the rest of our AI and ML final year projects if you want to compare a few before deciding, or head straight to the machine learning projects with source code collection. Everything there ships the same way: code, report, support.
Building this from scratch would eat three or four weeks. Feature engineering alone — getting rolling averages and lag features right without leaking future data into your training set — is a week if you've never done it. You're skipping that and spending your time on understanding and presenting instead.
Add any of these professional upgrades to save time and impress your evaluators.
Personal session with an expert developer
We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).
1-hour live session to explain logic, flow, database design, and key features.
Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.
Fully customized to match your college format, guidelines, and submission standards.
Need feature changes, UI updates, or new features added?
Charges vary based on complexity.
We'll review your request and provide a clear quote before starting work.
Reviews