Bike Store Inventory & Sales App

Case Study · C#, .NET WinForms, SQLite

A desktop application built for a small electric bike retailer to manage inventory, sales transactions, and service records. Designed to support daily operations with a focus on usability, accuracy, and reliability.

Overview

This project was built to replace manual tracking methods with a consistent system for recording stock, transactions, and service activity.

Problem

Inventory and transaction tracking handled manually can become inconsistent over time, making it difficult to check stock status quickly, review history, or create summaries without extra effort.

Solution

A lightweight desktop application with structured data storage and a simple workflow-based UI to manage daily operations reliably.

Key Features

Designed around the core workflows a small bike store needs: manage stock, record transactions, and review history.

Inventory Management

  • Create and update product records
  • Track stock quantities and item details
  • Support quick lookup and consistent data entry

Sales & Transaction Logging

  • Record sales transactions consistently
  • Maintain a transaction log for review and auditing
  • Support structured history for store operations

Service Records

  • Track service activity alongside sales
  • Store basic details to support follow-ups
  • Keep customer-facing work organised

Offline-First Storage

  • Local SQLite database for reliable storage
  • Works without internet access
  • Designed to be maintainable and extendable

Tech Stack & Implementation

Built with a straightforward structure to keep the codebase maintainable and easy to extend.

Stack

  • C# / .NET WinForms for the desktop UI
  • SQLite for local structured storage
  • Git & GitHub for version control

Approach

  • Designed screens around real workflows
  • Improved features based on feedback and iteration
  • Kept the UI clean and consistent for non-technical users
  • Prioritised accuracy and reliability of records
View Source on GitHub Back to Projects

Challenges & Learnings

This project strengthened my ability to translate user needs into software features and deliver a usable system through iteration.

What I Learned

  • Turning requirements into clear workflows and UI design
  • Working with structured data using SQLite
  • Building maintainable code that supports future improvements
  • Iterating quickly while keeping changes stable

What I’m Proud Of

  • End-to-end ownership: plan → build → test → refine
  • A practical solution designed for real store operations
  • Clear structure that can be extended over time