/cartify

Shopping Cart implementation to serve as a shell for building e-commerce apps | Angular 7, Node.js, MongoDB

Primary LanguageTypeScriptMIT LicenseMIT

Cartify

Coverage Status codebeat badge FOSSA Status

Introduction

Cartify is designed to serve as a shell for the swift rollouts of e-Commerce web applications. The service-oriented design decouples the application logic from the core constructs such as data persistence, logging, error reporting, and payment gateway integration which provides developers with a clean API for customization.

Some of the core features include the ability to browse the list of products organized to highlight the key attributes namely category, price, reviews, rating etc. Detail of each product can be viewed along with associated user feedback. Customers can add/remove items to/from the shopping cart. Administrators can manage inventory by adding new items and revising attributes of the existing items.

Try it out https://faxad.github.io/cartify

Core Architecture

  • Service Oriented Design
  • Reactive Components
  • Modularized
  • Material Design
  • Flexbox Layout
  • Error Logging & Reporting using Sentry
  • Automated Tests using Jasmine, Karma, PhantomJS, Istanbul

Technology Stack

  • Angular 7
  • Typescript
  • Reactive
  • Express JS as a Backend
  • MongoDB Atlas as DBaaS Provider (MongoDB Cloud Services)
  • Error Logging & Reporting using Sentry
  • DB Performance Monitoring
  • Material Design
  • Flexbox Layout

Usage & Configuration

Step 1: Clone!

git clone --recursive https://github.com/faxad/cartify.git

Step 2: Configure Database Provider (Optional)

  • You can either setup your own MongoDB instance or register with a Database-as-a-Service provider
  • MongoDB DBaaS Providers: mLab, MongoDB Atlas..

Step 3: Configure Backend - API (Optional)

  • Create a .env file in the project's root directory
  • Set the required environment variables as per the instructions

Step 4: Configure Frontend - Angular

  • The frontend is pre-configured to use APIs hosted on OpenShift which consumes MongoDB cloud services to persists data.
  • If you wish to run backend locally, you have to configure the following variables in ./src/environments/environment.ts
    apiUrl: 'http://<BACKEND_IP>:<PORT>/',
    sentryDns: 'https://<SENTRY_DSN>'
    
  • You may have to register with Sentry for error logging, reporting and monitoring

How to run Cartify?

  • Install required node packages

    npm install
    
  • Start the backend server (API)

    npm run backend
    
  • Start the angular application

    npm start
    

Demo Instructions

  • Open browser and navigate to http://localhost:4200
  • Sign in using the following credentials:
    • administrator: admin / pass
    • user: user / pass

License

FOSSA Status