fluentpos

Open source

Building a better Open Sourced Point Of Sales / Inventory Management System using .NET / Angular.

Contribute


Become a financial contributor.

Financial Contributions

One-time contribution

Backer

Join us for $20.00 and support us

Starts at$20 USD

Recurring contribution

Backer PRO

Join us for $10.00 per month and support us

Starts at$10 USD / month

Recurring contribution

Sponsor

Become a sponsor for $100.00 per month and support us

Starts at$100 USD / month

Custom contribution

Donation

Make a custom one-time or recurring contribution.

fluentpos is all of us

Our contributors 3

Thank you for supporting fluentpos.

Nickolay Cheb...

Core Contributor

Chhin Sras

Core Contributor

Budget


Transparent and open finances.

$
Today’s balance

--.-- USD

Total raised

--.-- USD

Total disbursed

--.-- USD

Estimated annual budget

--.-- USD

About


 
Having quite a lot of experience with POS & Inventory Management systems, we set out to build out a full-fledged open-source system using our favorite tech stack and tools. Modular development was a prime requirement for us when we got started. Adapting to a Microservice architecture was the first choice we had. But given the complexities with the mentioned architecture, we decided to stay away from it at least for the starting.

There actually was no real need to implement microservices. fluentpos was meant to help businesses in their day-to-day activities. For this, a well-designed monolith application would also do the trick. We were clear to have the API and UI separated, to give opportunities to multiple client apps in the future.

For API, ASP.NET Core 5.0 was our obvious choice. As for the UI, we decided to go with Angular 12 Material UI.

The WebAPI application had to be highly modular to improve the development experience. This needed breaking down the application to logical modules like Identity, Catalog, Sales, Inventory. Each of these modules has its own controllers/interfaces / dbContext. As for the DB providers, Postgres / MySQL will be used. One module cannot directly talk to the other module nor modify its table. CrossCutting concerns would use interfaces/ events. And yes, domain events are also included in the project using mediator Handler. Each of the modules follows a clean architecture design / Onion / Hex.

fluentpos was meant for retail businesses. The modular monolith architecture would help us to extend fluentpos to support other business modules like cafes, restaurants, warehouses and so. 

Our team

Nickolay Cheb...

Core Contributor

Chhin Sras

Core Contributor