Varta HRM — Staff and Position Structure module with hierarchical tree of units and positions
Custom (Portfolio)

Varta — HRM Personnel Management System

Full-featured HRM system for organizational personnel management

Client Armed Forces of Ukraine
Year 2025–2026
Category HRM System
Stack Django 6 + React 19

This project was developed for a government organization. All personal data shown in screenshots is fictitious and used solely to demonstrate the interface. Any resemblance to real persons is coincidental.

01

About Product

Full-featured HRM system (Human Resource Management) for a brigade-level military unit of the Armed Forces of Ukraine. The system fully replaced paper-based records and legacy solutions, providing real-time personnel tracking.

Full-cycle development — from DB architecture to production deployment. 11 Django apps, 12 frontend modules, ~80 API ViewSets.

~93K Lines of Code
452 Files
17 Modules
80+ API ViewSets
02

System Interface

Below are screenshots of the key system modules with test data. Actual personnel data is confidential and subject to non-disclosure.

03

Technology Stack

Backend

Python 3.12, Django 6 + DRF, Django Channels, Uvicorn (ASGI), PostgreSQL 16, Redis

Frontend

React 19, TypeScript (strict), Vite, Ant Design 5, TanStack React Query, React Flow, Recharts

Infrastructure

Nginx (reverse proxy + static), systemd, Let's Encrypt SSL, WebSocket (Django Channels + Redis)

Integrations

WhatsApp bot (Node.js), Google Sheets API (OAuth 2.0), DOCX document generation (python-docx)

04

Key Modules & Solutions

Organizational Structure

Flexible unit tree of unlimited depth (django-mptt). Interactive org chart (React Flow + Dagre auto-layout). Positional model: "slots" (positions) exist independently of people — vacancies, staffing table, career history.

Personnel Management

Employee card with fixed + dynamic fields (EAV constructor via UI). Multi-block status system with cascading rules. Full career history: assignments, transfers, promotions, temporary duties, deployments. Soft deletion — records are never deleted, only archived.

Timetable

Employee × days matrix with virtual scrolling. Mapping: status combinations → timetable symbol (configurable via UI). Three data sources: auto-fill, absence panel, manual input. Audit log for every cell change.

RBAC & Data Security

~30 granular permissions, dynamic roles via UI. 3-level data isolation: Django ORM (.for_user()), Middleware checks every API response, PostgreSQL RLS (Row-Level Security) as the last line of defense.

Document Generation

DOCX templates with placeholders → auto-fill data from DB. Batch generation for multiple people. 6 document types: vacations, business trips, medical, position handover, etc.

Reports & Integrations

Daily text report. Complex Excel export with formatting (openpyxl). Report builder (drag-and-drop). Google Sheets integration (OAuth 2.0, bidirectional sync). WhatsApp bot for mass messaging and automated notifications.

Real-time & Performance

WebSocket via Django Channels + Redis. Virtual scrolling for 500+ element lists. Server-side pagination, filtering, sorting. Monthly partitioning for high-load tables. Code splitting (React.lazy + Suspense).

Admin Panel

Online user monitoring. Server statistics (CPU, RAM, disk). Backup management (manual + automatic). System notifications, maintenance mode lockdown.

05

Architecture & Security

Headless architecture: Django serves exclusively as an API backend (no Django Admin, no templates). React SPA communicates via HTTPS and WebSocket. Three levels of data isolation guarantee that no user can access data outside their unit — even through raw SQL.

Frontend
React 19 SPA TypeScript (strict) Ant Design React Query
HTTPS / WebSocket
Nginx
/api/* → Django /ws/* → Channels /* → Static SPA
Backend
Django 6 + DRF Uvicorn (ASGI) Django Channels WhatsApp Bot
Data Layer
PostgreSQL 16 + RLS Redis

3 Levels of Data Isolation

1

Django ORM

Custom QuerySet with .for_user() on every ViewSet

2

Middleware

Checks every API response for data leaks, blocks and logs violations

3

PostgreSQL RLS

Row-Level Security — even raw SQL cannot return data outside allowed units

06

What Was Done

Full development cycle: system architecture and DB schema, Backend (Django REST API, WebSocket, business logic, RBAC, RLS), Frontend (React SPA with 12 modules), DevOps (Nginx, systemd, SSL, production deployment), integrations (WhatsApp bot, Google Sheets API, document generation).

17 System Modules

Dashboard & Analytics
Organizational Structure
Staff & Position Structure
Combat Strength Table
Attendance Timetable
Absent Personnel
Excluded Personnel
Irrecoverable Losses
Arrived Personnel
Document Generator
Reports & Export
Combat Journal (JBD)
Building Orders
Kanban Task Board
WhatsApp Integration
Admin Panel & Backups
Roles & Permissions (~100+)
07

Frequently Asked Questions

What technologies were used to build the Varta HRM system?

Backend: Python 3.12, Django 6, Django REST Framework, Django Channels (WebSocket), PostgreSQL 16, Redis. Frontend: React 19, TypeScript (strict mode), Vite, Ant Design, TanStack React Query, React Flow. Infrastructure: Nginx, Uvicorn (ASGI), systemd. Integrations: WhatsApp bot (Node.js), Google Sheets API, DOCX document generation.

How does Varta ensure data security in a multi-user environment?

Varta implements 3 levels of data isolation: 1) Django ORM with custom QuerySet manager (.for_user()) on every ViewSet, 2) Middleware that checks every API response for data leaks, 3) PostgreSQL Row-Level Security (RLS) on all unit-scoped tables. Additionally: CSRF protection, rate limiting, VPN-only access, HTTPS, CORS strict origins.

What is the scale of the Varta HRM project?

The project consists of ~93,000 lines of code across 452 files: Backend (Python/Django) — 167 files, Frontend (TypeScript/React) — 275 files. 17 functional modules, 80+ API ViewSets, 11 Django apps. Supports real-time WebSocket updates and concurrent multi-user access.

Can you develop a similar HRM system for our organization?

Yes, Artbrain specializes in custom HRM/ERP system development. We can build a tailored solution based on your organization's specific requirements — tailored to your specific business needs. Contact us to discuss your project.

Start your journey to success

Have a project? Let's bring it to life together.

Also

Other Services

Landing Page
A page to attract clients and collect leads
from $550
Corporate Website
Multi-page website to represent your business
from $1200
E-commerce
Online store with catalog, cart and payments
from $2500
CRM System
Customer, sales and communication management
from $3000
Cost Calculator

From Our Blog

Prom.ua Fees in 2026: Why Your Own Online Store Is More Profitable
03.04.2026 · 14 min
Prom.ua Fees in 2026: Why Your Own Online Store Is More Profitable
Prom.ua commission from 4.2% to 15%, subscription up to 11,500 UAH/year. We calculated at what turnover a custom online ...
Telegram Bot Development for Business in 2026: Capabilities, Cost & Real Cases
26.03.2026 · 14 min
Telegram Bot Development for Business in 2026: Capabilities, Cost & Real Cases
What a Telegram bot can do in 2026: Mini Apps, AI, payments, sales automation. Real development cost from $800. No-code ...
Online Store in 2026: Shopify, WordPress or Custom Development — What to Choose?
23.03.2026 · 16 min
Online Store in 2026: Shopify, WordPress or Custom Development — What to Choose?
We compare three paths to building an online store: Shopify, WordPress + WooCommerce, and custom development. Real price...
All articles
Call Telegram WhatsApp