Giter VIP home page Giter VIP logo

modernshopping's Introduction

ModernShopping: Modern Software Application Sample

When you look at the sample applications out there today, you will see that they are pretty simple and possibly only focuses on one bit of concept or technology. This is really good to get your head around it at first but after a while, you may struggle to get everything together and produce a lovely solution.

ModernShopping targets to provide a fully fledged solution for a shopping company like Amazon.

Main Objectives

This application will be built several objectives in mind:

  • HTTP interface first approach
  • Microservices-like approach
  • Polyglot persistence
  • Centralized logging
  • Top-notch deployment, release and versioning story
  • Multiple clients (Web, iPhone, Android, etc.)
  • Not-only-one architectural pattern

Approach to Take

The below is the prefered approach to take to build this project:

  • Authentication/Identity: We need to identify users in our system and persist the identity. Good case for relational data storage system like SQL Server.
  • View: We should be able to view the products on a client. Incredibly sensible for MongoDB.
  • Search: We should be able to search for products.
  • Shopping Cart: User should be able to fill in their shopping cart. Perfect case for event store!
  • Order: Whole point of the business. Without the orders, we are NOTHING! Good case for asyncronous processing (stock limit, price changes, etc.).

Cross Cutting Concerns

  • Analytics: This is important bit so that
    • 1-) we can approach people with recommendations. Good case for a graph database.
    • 2-) we can identify the application usage. Good case for Google analytics.

Going Beyond

  • Product Comments: Make users comment on products and identify users with legit comments for the stuff that they have bought.

Some Constraints

  • Have integration tests only, no unit tests.
  • Use NodaTime on all .NET projects whenever possible.
  • The whole solution should be runable cohesively with minimal config locally as well as individual pieces running seperately.

modernshopping's People

Contributors

tugberkugurlu avatar

Watchers

James Cloos 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.