# Luca Pezzino E-commerce

# Premise

Luca Pezzino E-commerce is a PWA (Progressive Web App) which, despite being usable as a normal site, on Android devices (and soon also on Apple) can be transformed into an App (hence an icon on the screen launching the application), simply by pressing "OK" at the installation request.

PWA in numbers:

  • Shipping countries: 88
  • Languages: 2 (Italian and English)
  • Price lists: 9
  • Currencies: 4 (Euro €, British Pound £, Japanese Yen ¥, US Dollar $)
  • Products (depending on the color): 893
  • Skus (produced according to color and size): 7345
  • Images: 3870 (to be multiplied by the various dimensions)

WARNING

The comparison is with the version developed by Still4, a company for which I worked until mid-April 2019 (company went bankrupt, thank you for not paying me the severance pay, while continuing the owners with a sister company). From Still4, I had been commissioned to maintain the project (pollini.com) created by a former colleague, fired one year before my dismissal and another, fired in turn even before I arrive. In this week, I see that the new company (which has nothing to do with Still4) has dealt with the graphic restyling (wise choice).

The purpose of this project is:

  1. Develop an App that is extremely performing and easy to use for the end customer (therefore better profits)
  2. Demonstrate my skills as FullStackDeveloper (FrontEnd framework + RESTful API + BackEnd framework)
  3. Develop a management system that is extremely easy to use for anyone without technical knowledge
  4. Demonstrate my skills and find a new job

# Development

The PWA currently online, has been redone from scratch, without keeping a single line of code from the official website: starting from the CSVs with which Pollini uploads its products (the latest version available to me, dated February 18,2019) and from its images, I designed the DataBase. Mindful of the enormous effort that the original monolith code causes in the development of new features (as well as in debugging problems), I began to divide the BackEnd (Laravel, PHP framework, only as API responder) and the FrontEnd (made in Vuejs and Vuex, which respectively refer to Angular and Flux / Redux), interfaced by the RESTful API (NOT "restish"). I also divided the public site from the management (who knows why, many consider it BackEnd, but it is only a protected FrontEnd): and we have 4 divisions!

As for the BackEnd (but if it enters production, the FrontEnd will also undergo the same treatment) I approached the coding in DomainDrivenDesign mode, then further breaking it down into modules (technically packages): currently the entire project is composed of as many as 22 modules ( destined to increase). The benefit is obvious: imagine every time we go out, wanting a certain pair of shoes, we have to look for it in a huge box in which hundreds of shoes have been thrown at random (the site monolith). Much better would be if we find them at the first blow placed on the correct shelf (the modules of the PWA).

In addition to the DDD mode, the packages have also been developed in the Test Driven Development mode: in essence, first we write the test for the feature to be implemented, then the code to pass the test. Module tests are independent of the rest of the application. In this case, the improvements in choosing this type of development serve to limit the possibility of unexpected bugs as much as possible.

The modules have also been developed to be reused in other projects (therefore as generic as possible)

# Conclusions

I wanted to continue developing the project, but I set myself this week as the last term: in the Christmas holidays, I will fix a few things, I will probably do this site again, also attaching some videos on the ease of use of the PWA developed and its management. A lot has been done (for example, the management software is not visible, with which among many things, anyone can set the sales in a few mouse clicks, while on the site, a DataBaseAdmin and several hours of work are required), but it has remained out for example the sitemap for SEO on Google: I will always see during the holidays ... With reference to the points of the premise:

  1. Objective decidedly achieved: I intend to publish a video, but a new customer who arrives on the site, manages to complete the purchase in a few mouse clicks (payment included). Why is there no login / registration? Simple, the data is retrieved directly from the payment gateway server. The customer is also automatically registered in my DataBase (I will still develop a reserved area, to view the purchases made).
  2. I would say goal achieved, but who will hire me will confirm it 😉
  3. See mention of the sales, but in reality it is all about automation and ease of use: on the site there was, for example, a complex sequence of buttons to be pressed to load the products (I had also made a kind of manual , because the employee never remembered the sequence), in the PWA there is a single button (but I plan to remove it, and automatically insert the products, when the CSV have been uploaded to the server, or if Pollini opted to use my API, better yet).
  4. We will see ... The technologies that I have used are distinguished by technical excellence and are the preserve of a select few worldwide

The potential of penetration of the mobile world for an E-Commerce using PWAs are enormous (see Ali Express) and the adoption of this type of software by all major vendors should not be an option, but a rule.