Challenge
Sud Ishlari is the Tashkent city hokimiyat's internal system for tracking court cases that involve the hokimiyat and city organisations. Its legal teams register cases, follow hearings and rulings at each court instance, and record awarded sums and their payment.
Court cases pass through the Tashkent hokimiyat's legal teams all the time: claims from residents and companies, property and tax disputes. Information about them was spread across separate files, spreadsheets and paper summonses, so building a full picture of a case was hard. The city needed an admin panel for court cases where every case has one card and a clear status.
A case rarely ends at the first instance. Cassation and review follow, and every stage brings new dates, rulings, approved sums and documents: summonses, court decisions, papers from the compulsory enforcement bureau. Here a lost document means a missed deadline and a risk to the city's interests.
Hearings are set for a specific date and time, and they need to be tracked as closely as the cases themselves. Staff needed a shared worklist with a calendar showing what is due today, what has been done and which assignments are still open.
Case cards hold personal data: personal ID numbers, passport details and dates of birth. So only users with the right role may change records, every action has to stay in an audit log, and the interface has to work in both Russian and Uzbek.
Solution
We split the system into two workspaces. The home page holds a worklist of cases with a calendar: each entry has a court instance, court type, plaintiff, date, comment and a done or not-done status. The Court Cases section is a registry with search by ID, case number and plaintiff name, filters and an Excel export.
Each case opens as a card with three tabs: information, instances and documents. A legal entity is recorded with its tax ID, an individual with a personal ID number, passport and date of birth; alongside sit the responsible organisation, tax debt, requested and paid sums, cadastral number and a point on the map. The summons and the final court ruling are uploaded straight into the card.
The interface is built with React and Vite, and data comes from a Django REST Framework API with token authentication. Only administrators and moderators can edit cases, other users work in view-only mode, and changes are recorded in the audit log. The panel is available in Russian and Uzbek.
Court case registry
All cases sit in one table: database ID, creation date, case number and type, plaintiff, organisation, total and paid sums, payment status. Search works by ID, case number and plaintiff name, filters by case type, organisation, payment status and period, and the list exports to Excel.
A case card with three tabs
The case information tab gathers the registration number, parties, grounds, content and sums. The instances tab shows the case's path through the courts, and the documents tab stores files with a title, date and description, so papers are not lost between stages.
Court instances and rulings
For each instance, the panel records its name, date, the content of the ruling, the approved sum and whether the claim was upheld. If a valuation was carried out, the valuing organisation and its date are added, and a third party is noted when one is involved.
Sums, payments and tax debt
The card keeps the requested and paid sums, tax debt and payment status. Payments are entered in a separate window without opening the whole form, and the enforcement bureau document and the final court ruling are attached to the case.
Hearing and assignment calendar
On the home page, case entries are collected in a table with a calendar that switches between days, months and years. Every entry has a court instance, court type, plaintiff, date, a comment of up to 512 characters and a completion status.
Roles, access and audit
Rights depend on the role: administrators and moderators add and edit cases, while other users can only view data. Some profile fields are locked, users sign in with a login and password, and their actions go into the audit log.
Results
The project's key outcomes in numbers.
- −65%Risk of losing documents
Summonses, rulings and instance documents are kept in the case card, not in scattered folders.
- ×2Case handling speed
Search, filters, statuses and the hearing calendar made working with cases twice as fast.
- 100%Actions in the audit log
Changes to cases are logged, so it is always clear who changed what and when.
- 25 daysDevelopment time
We built the registry, case cards, the assignment calendar and roles in twenty-five days.
Project tech stack
The stack we used to build the solution for the client's task.
- Python
- Django
- Django REST Framework
- Nginx
- React
- Vite
Ready to become the next case?
Tell us about your task — a manager will assemble the team, calculate the estimate and send a proposal within the first hour after the request. No obligations, no drip campaigns.






