Skip to content

Backend REST API built with .NET to support internal retail operations, exposing business data and workflows for a mobile client application.

Notifications You must be signed in to change notification settings

asik14014/AccountingApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FourSeasons Application. Inventory & Sales Management Backend

Project Overview

This project represents the backend layer of a client–server system, designed to support a mobile Android application via REST APIs.

The backend is responsible for:

  • request handling and validation
  • business logic orchestration
  • data persistence and reporting
  • exposing a stable API contract for a mobile client

The project demonstrates a layered backend architecture commonly used in real-world business applications and internal systems.


Key Features

The system provides functionality for:

  • Product management and inventory tracking
  • Inventory audits (stocktaking)
  • Sales processing with discount support
  • Sales reporting and analytics
  • Product photo management
  • Receipt generation and printing via Zebra printers (printing handled on the Android side)
  • Sales tracking by sellers / agents
  • User authentication and access control based on login/password
  • Linking all sales and operations to specific users (agents)

Promotions & Loyalty Programs

The system supports flexible promotion and loyalty mechanisms, including:

  • Discount cards and loyalty programs
  • Permanent (fixed) discounts
  • Progressive discounts based on purchase history
  • Free items or free purchases after N purchases
  • Configurable promotion rules with different conditions and thresholds
  • Automatic promotion validation and application during sales processing

Architecture Highlights

  • Backend-centric architecture with all business rules enforced server-side
  • Clear separation of concerns between backend services and Android client
  • Centralized authentication and authorization
  • Promotion and discount rules validated and applied on the backend
  • Stateless API design for mobile clients
  • Designed to support multiple sellers, devices, and concurrent sales operations

Technology Stack

  • Backend: C# / .NET
  • Database: SQL-based relational database
  • Mobile Client: Android (Kotlin)
  • Printing: Zebra printers (handled on the Android client side)
  • Authentication: Login/password based authentication

Solution Structure

The solution is organized into logical layers, including:

  • API layer for communication with mobile clients
  • Business logic layer for sales, inventory, and promotions
  • Data access layer
  • Authentication and authorization components

Additional implementation details, data models, and workflows are documented directly in the source code.


Client Application

The Android client application is written in Kotlin and is intended for use on Android devices.
It interacts with the backend via API and handles user-facing operations, including receipt formatting and printing using Zebra hardware.


Notes

This repository focuses on the backend implementation.
Some technical and architectural decisions are intentionally documented at a high level to keep the README concise and suitable for a public audience.

About

Backend REST API built with .NET to support internal retail operations, exposing business data and workflows for a mobile client application.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published