Private source

UzungilErp

An in-house ERP for two companies, built on the Vega ERP database

An ERP web app for a food manufacturer and distributor covering orders, dispatch notes, e-invoices, collections, stock, production and reporting. It ships with a separate WPF app for warehouse touchscreen terminals and order integrations with Migros, Şok and Tarım Kredi.

Web · Razor WPF Terminal ASP.NET Core · SignalR Identity Common Uzungil Çatak Vega
Period
Jul 2026 – Sep 2026
Role
Uzungil Şekerleme ve Gıda · Junior Software Developer
Status
In production, internal
Platforms
Web · Windows
~120controllers
5DbContexts in one app
5background services
2companies, one codebase

Overview

UzungilErp is an ERP used by office, warehouse and store teams, serving two companies, Uzungil and Çatak. It covers sales and purchase orders, dispatch notes, invoices and e-invoices, collections and payments, stock and warehouse management, counts, production entry, bills of materials and FIFO cost tracing.

The app runs on top of the existing Vega/Arctos ERP database and writes back by replaying the same operations Vega performs. Those operations were reverse-engineered from SQL traces and documented.

Highlights

  • One period dictionary maps Vega's per-company, per-fiscal-year tables, so opening a new year takes one line
  • Order import from Migros B2B, Şok Market and Tarım Kredi, plus consignment counts
  • UBL-TR e-invoicing and SOAP service integrations
  • Real-time notifications over SignalR; background services for meeting reminders, overdue collections and accounting notices
  • Role, page and per-user warehouse permissions with an audit log
  • An in-app assistant, "AI Amca", and AI analysis of stock-control Excel files
  • Reports such as stock days, sales pivots and monthly warehouse summaries

Architecture

A single ASP.NET Core MVC monolith that connects to several databases at once through five DbContexts and uses Dapper for heavy SQL. A separate WPF client runs on warehouse terminals.

  1. ClientsRazor + Syncfusion EJ2WPF Terminal (touchscreen)
  2. ApplicationServices layerSignalR NotificationHub5 background services
  3. DataEF Core + DapperIdentity · Common · Uzungil · Çatak · Legacy
  4. ExternalVega/Arctos DBe-Invoice (SOAP)Migros · Şok · Tarım Kredi

Engineering notes

  • The terminal app keeps an offline cache, works with an on-screen keyboard and prints barcode and QR labels straight to the printer.
  • The rules for writing into Vega are documented step by step in a dedicated design doc.

Screens

Screenshots coming soon