In productionCRM · Retail & dropshipping

Lite-Shop

CRM for a footwear business selling wholesale, retail and through resellers: orders, size-level stock, made-to-order production, shipping and customer messaging — with the routine automated.

  • 5years in production
  • 330+commits
  • 44API controllers
  • 3UI languages
Overview

About the project

Managers handle contacts, the catalog, stock, orders and promotions in the back office, while dropshippers and resellers work through a web view inside a messenger bot: they reserve stock, place orders and check their balance.

The system takes care of the routine: it creates Nova Poshta waybills, sends customers tracking updates, syncs the catalog with Google Sheets and auto-confirms orders. The UI is available in three languages.

Features

What the system does

  • Orders

    Wholesale and retail orders with a sales channel (TikTok, Instagram, website, Facebook), payment status, order merging and filters.

  • Made-to-order

    A separate fulfillment type with lead times, pre-payment settings and confirmation for low pre-payments.

  • Reseller reservations

    Size-level reservations via the bot with automatic expiry, cancellation and refunds.

  • Nova Poshta shipping

    Waybills generated from orders, city and branch lookup, automatic tracking messages.

  • Customer messaging

    One-off and bulk messages via SmartSender, back-in-stock alerts for a size.

  • Reseller finances

    Transactions, balance, payout requests and per-contact PDF reports.

  • Catalog & stock

    Products, categories, size charts and stock with two-way Google Sheets sync.

  • Promotions

    Promotion types and discounts applied to orders.

  • Analytics

    Dashboard for sales, statuses, wholesale / retail / made-to-order, stock and client rating.

Architecture

How it is built

  1. Modular monolith

    An ASP.NET Core host with Retailing, Dropshipping and Supporting domain modules — each with its own Domain and Infrastructure projects.

  2. Security & roles

    A custom JWT handler with User, Administrator and Bot roles; separate back-office and bot areas guarded in Vue Router.

  3. Versioned API

    API v1–v3: api/v{n} for the bot and public endpoints, ui/v{n} for the back office, a generic EntityController for CRUD and search.

  4. Outbox & background jobs

    A PostgreSQL outbox table plus Hangfire: reservation expiry every minute, order auto-confirmation, waybill tracking, Google Sheets sync.

  5. Tooling

    A separate SyncPrice app imports prices, descriptions, images and stock from Google Sheets.

Integrations

External services

  • Nova PoshtaWaybills, city and branch directories, shipment tracking.
  • SmartSenderCustomer messages through messenger bots.
  • Google SheetsTwo-way sync of products and stock.
  • File conversionHTML → PDF for transaction reports.
Technologies

Project stack

Backend

  • .NET 8
  • ASP.NET Core
  • EF Core
  • MediatR
  • AutoMapper
  • Hangfire
  • Swagger

Frontend

  • Vue 3
  • Vue Router
  • Vuex
  • Bootstrap
  • ApexCharts

Data

  • PostgreSQL
  • Npgsql

Infrastructure

  • Docker
  • Azure Pipelines

Have an idea or a project?

Open to collaboration on business systems, CRM and integrations. Drop me a line — let's talk.

vhnatovskyi@hotmail.com