Sud Ishlari — admin panel for court cases

For the Tashkent hokimiyat, we built an admin panel for court cases: a searchable registry, court instances, documents, a hearing calendar and user roles. The risk of losing documents fell by 65%, and cases are now handled twice as fast.

Client
Sud Ishlari
Duration
25 days
Project type
Web application
Visit the website
Sud Ishlari — admin panel for court cases

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.