Pomavin — “For the color of gold”

Purpose: protected & reliable online poker room control panel


  • Compressed deadline: 4 days to completion
  • Revenue calculation using historical data
  • Step tracking — all activity on the log


Chip & Flop

Green cloth. Glossy chips. Lowered voices. Golden ornaments. Smoke of heavy cigars. Smoke of guns.

This is poker. More or less, depending on the grade and circumstances, but this is poker. This is what I tried to reflect in my design and, humbly, I have to admin that it’s the best design I’ve pulled out in the last year. It’s full of stars.

This project got me hooked right from the start. I still have no clue why — maybe because it was a few months I had to abstain from taking new orders due to heavy work load. Or maybe I was just smelling gold.

One thing that was also appealing to me was time challenge. The client has convinced me to finish the project in one week. It was not entirely impossible but it was on the edge — no time buffer, little time for anything else. So I had to take it over and break it even.

Who hit the dealer?

The purpose of Pomavin is explained by its name: Poker Mavens Admin [panel]. Poker Mavens is a Windows online poker room server by Briggs Softworks that lets you play poker from any mobile device or regular computer browser.

However, the real fun in online poker is when it’s about business. Like in real casino you don’t play for free — or not supposed to anyway — instead, there’s a concept of “rakeback’. Rakeback is the share of your chips that the owner of the room — “agent” — takes away. Let’s say you’re paying for 100 chips. If rakeback rate is 30% then you’re going to get only 70 chips when you sign in.

Poker Mavens (the server) supports infinite number of virtual rooms and users. Thus in Pomavin, there are many agents — people that give others virtual chips — and all agents all have their rakebacks. The main goal of Pomavin is to calculate sums per agent within a certain period.

Time Tracker

Activity Log in action

While calculating revenue doesn’t look particularly challenging it’s not how it is in poker. Here, we have agents. They can only manage certain players. When they “manage” them — by giving virtual chips — they have their share, or rakeback. But players can be reassigned to another agent. And of course, that other agent should not receive credit for the time the player was assigned to someone else. Likewise, if we calculate report on the first agent who’s lost the player later his earlier revenue should still be visible.

On top of that, rakeback percentage is flexible and can be changed per-agent, anytime. Once again, we should remember old value and the period during which it was effective and use it instead of current value when report is generated.

For this I have introduced “time tables” — a special place where such report-affecting activities are reflected, along with their time stamp and old value. Reports then use time tables to determine effective value to generate output. This all takes a single SQL query so even large data sets are processed quickly.

And online poker is the kind of business when your data grows as fast as your revenue!