GithubHelp home page GithubHelp logo

ecommerce's Introduction

Overview

Ecommerce application is simple ecommerce application POC built with Spring boot backend and VueJs frontend.

Table of Contents

1-Design
2-Install

1. Design

1.1 Considerations

1.1.1 Assumptions

This project is designed for simple ecommerce application that run on any docker container. Mainly focused on three major use case scenario.

  • Publicly browse products
  • Customers browse and purchase with one click checkout option
  • Merchants can be able to add their products to the application

1.1.2 Constraints

Amazon S3 and Image transformation API is required to run application.

1.1.3 System Environment

Application backend components

  • Spring Boot
  • PostgresSQL
  • Redis
  • TransformImgs -> Open source image transformation library uses ImageMagick
  • Amazon S3

1.2 Architecture

Ecommerce application is a simple monolith single page application. Frontend application communicates with backend side on secured and public REST API.

Application has 3 roles,

  • ADMIN - > Admin user to manage/browse API swagger documentation.
  • MERCHANT - > User can add/modify products
  • CUSTOMER - > Regular user type who can purchase products

1.2.1 Backend

Two types of backend API is designed for application.

  • /public/* - > Public REST API for registration or browsing products that are no user required
  • /api/* - > Secured REST API for product or customer related resources that required JWT token at Authorization header.

For database version control Liquibase is used. All type of users are populated with it.

To simulate Amazon S3 environment, Localstack is used. To reduce the size of the images, TransformImgs is used. It is a simple REST API version of ImageMagick.

OpenAPI documentation can be browsed at http://localhost:8081/admin/swagger which is generated by swagger. Only ADMIN role user can be able to log in and test credentials are;

[email protected]
E3VG5mmq8WCK

1.2.2 Frontend

CoreUI Vue Admin Template is used for frontend of application. It has already built in components and offers production ready user experience.

2. Install

Browse in setup folder and run

docker-compose up --build -d

To stop application

docker-compose down

2.1 Delete & Refresh Data

Localstack is using localstack-data in setup folder and delete to reset all images.
PostgreSQL is using postgres-data in setup folder and delete to erase database.

ecommerce's People

Contributors

aandac avatar

Watchers

 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.