Mobile, desktop & console
Stock Management · Flutter mobile app
An offline-first mobile app that lets small businesses know at any time what they have in stock, what is about to run out and what happened.
- Individual project
- questions the app answers
- 3
- business modules
- 5
- layers per module
- 3
- connection needed to use it
- 0
01Starting point
Context & mission
The problem
A customer asks for an item, the manager turns to the shelf: none left. The problem is not technical, it is about information: the stock exists, but nobody knows exactly what it holds or when to restock.
The mission
Build a tool that fits in the manager’s pocket, works offline and answers three questions: what do I have and what is it worth? what is about to run out? what happened, when and why?
My role
Designed and built on my own.
02Execution
What I did
Catalogue with alert thresholds
Each product has a name, description, price, quantity and its own alert threshold, and can be linked to a supplier.
Traceable movements
Every stock-in (delivery, restock) and stock-out (sale, loss, breakage) is recorded with its quantity, date and reason; product quantity updates automatically.
Dashboard
Product count, in-stock and out-of-stock products, total stock value, a pie chart and the list of products to restock first.
Offline first
Local data with Hive: the app stays usable without a network. The repository tries the remote source (Dio), then falls back to local data.
Clean Architecture
Five modules (auth, products, suppliers, stock, dashboard), each in three layers: data, domain, presentation. State managed with BLoC, dependencies injected with get_it.
03Design
Architecture
Clean Architecture organised by feature. Business logic stays independent of the framework, the API and the database: every action follows the same path, from screen to repository, which picks the remote or local source.
- ScreenMaterial Design 3
- BLoCEvents · states
- Use caseDomain
- RepositoryRemote then local
- HiveOffline
- DioFuture REST API
- get_itDependency injection
04Impact
Results
- The manager knows at any time what they have, what it is worth and what is about to run out.
- Every stock movement is traceable: quantity, date and reason.
- A network layer already in place for a future API sync.
05Wrap-up
Takeaways
What this project provesThat I structure a mobile app with the same discipline as a backend: clean layers, predictable state, data available without a network.
06Technology
Full stack
- Flutter
- Dart
- flutter_bloc
- get_it
- Dio
- Hive
- fl_chart
- Material Design 3
- Clean Architecture