Giter Site home page Giter Site logo

albash_public_demo's Introduction

Albania Software House Demo Application

Software Stack


  • LAMP, PHP 7.1.*
  • Symfony 3.4.*
  • Elasticsearch 6.8.*

Important general information

- The current shopping cart will expire after 4 minutes (depending on the `cart_expiration`= 4 parameter) (countdown visible on the checkout page).
- Upon cart expiration the products will be returned to the inventory.
- The cart is created upon first product add. Product removal will not delete/recreate the current active cart. (or associated expiration).
- The client will be able to finalize the purchase by paying the original price if the product price goes UP while the cart is not expired and the product was in cart! The client will be notified.
- The client will receive an automatic discount if the product price goes DOWN while the cart is not expired! The client will be notified.
- The client can shop anonymously, but will be required to login/register before checkout.
- When a registered client logs in, if a cart was left open from a previous client sesssion (and not expired), that cart will subsitute the eventual client cart created from the anonymous shopping before logging in. The client will be notified.
- A cron job runs every minute to expire orders&items not purchased before the timeout (default cart_expiration is 4 minutes).
- Instalation instructions can be provided upon request. Test fixtures are generated automaticaly.
- Please let me konw if you encounter issues or bugs. I will fix & redeploy the demo app.

Search

  • Home page search is implemeted through Elasticsearch .
  • A fuzzy search is done across all product properties.
  • An ajax request will be fired automatically if query >= 3 characters.
  • If the query return No Results all the products will be shown (as opposed to none).
  • The Elasticsearch Index will be updated automatically upon entities creation/deletion/update.

Product Listing

  • For a product to be listed on the homepage it should be:
    1. Listed on the Inventory.
    2. enabled on the Inventory.
  • Products whose inventory quantity=0 will be listed but not purchasable.
  • Current cart with the products and total can be purchased.
  • It is possible to update/delete current cart products&quantities.
  • Order History for logged-in users is also shown on this page.

Users & Role Hirarchy


  • ROLE_SUPER_ADMIN

    • ROLE_ALLOWED_TO_SWITCH
    • ROLE_ADMIN
      • ROLE_STAFF
        • ROLE_CONTRIBUTOR
          • ROLE_GUEST
            • ROLE_USER
    • ROLE_CLIENT
      • ROLE_USER

    Current Users

Usernane Password Role Info
client client ROLE_CLIENT Can purchase/finalize orders. Default role on registration. No Backend access.
superadmin superadmin ROLE_SUPER_ADMIN Create/Impersonate/Edit/Delete Users. +Edit Orders&Items. Can purchase/finalize orders. Can NOT delete orders or order-items. +ROLE_ADMIN inherited permissions.
admin admin ROLE_ADMIN Can NOT purchase/finalize orders. Missing ROLE_CLIENT. +Export Users. +ROLE_STAFF inherited permissions.
staff staff ROLE_STAFF Can NOT purchase/finalize orders. +List/+View Users, +List/+View/+Export Orders&Items. +Export, +Delete the rest. +ROLE_CONTRIBUTOR inherited permissions.
contributor contributor ROLE_CONTRIBUTOR Can NOT purchase/finalize orders. +Create/Edit entities, -Export/-Delete entities. -Users, -Orders, -Items. +ROLE_GUEST inherited permissions.
guest guest ROLE_GUEST Backend guest. Can NOT purchase/finalize orders. Can only +List and +View entities. -Orders, -Items, -Users

Links


albash_public_demo's People

Watchers

 avatar  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.