Giter Site home page Giter Site logo

crmoloto / pointofsale Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marinasundstrom/pointofsale

0.0 0.0 0.0 537 KB

Concept Point of Sale (POS) system - Blazor UI and micro services

License: MIT License

JavaScript 0.20% C# 72.72% CSS 0.80% HTML 26.27%

pointofsale's Introduction

PointOfSale

A Point of Sale app - demonstrating a distributed system supported by a well-crafted UI.

It is a proof of concept. Check the Disclaimer below.

Videos

Background

This is an attempt at learning micro-services and asyncronous messaging that started as simply a "Point of Sale" app.

Due to its nature, learn as you go, this is not the most complete sample.

The Purpose

To learn and share knowledge on how to design and implement a complex project based on [micro] services. And to have fun, at the same time. :)

Feel free to take inspiration from this work of art!

Development approach

It started when crafting a UI and adding the basic functionality. Thinking about the domain, what a User would expect from an app such as this - a general Behavior-centric approach to development.

First there was the Product Catalog, and then came the Cart system. Later the Customers service was added. Then the ability to create Receipts.

Project structure

The distributed app consists of code in .NET 6, using ASP.NET Core, and Blazor for UI.

As a development orchestrator, Tye is used. It has some Docker image dependencies that are also being managed by Tye.

SQL Server, Nginx, RabbitMQ, and Redis, are all running in Docker. Check tye.yaml.

The main services are: Carts, Catalog, Customers, Billing. The supporting project is Marketing which house the Discounts. The rest are in a basic state, with some not interacting with the main app.

Disclaimer

This is an educational effort that was created for fun when trying to understand the domain and how to implement it. It has never been made with any intention to be set into production.

It SHOULD NOT be used in production.

How to run

First, make sure that .NET 6 SDK and the Tye global tools are installed. You also need Docker.

Then, in the solution root directory, run:

tye run

This will start all the services and Docker containers.

Dashboard:

http://localhost:8000

Point of Sales UI:

https://localhost:8080/

You have to configure the certificates for SSL to work with Nginx. Check cert.md.

pointofsale's People

Contributors

marinasundstrom avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.