Giter VIP home page Giter VIP logo

ecom-m2pgi's Introduction

Adrien Faure (@adfaure)

About me

Full-stack developer located in Grenoble ⛰🚠, France. I am passionate about computer-science and distributed softwares, such as data pipelines or workflow systems. I love learning new languages and concepts.

My objective is to become a software architect to help build scalable and resilient distributed architectures.

As a Nix enthusiast, I took some time to configure my system. You can check my configuration.

My personal website.

As a Freelancer

I am open to work, feel free ton contact me via mail or via matrix @adfaure:matrix.org..

My activities:

  • System architecture and full-stack development
  • System scalability and back development
  • Technical and scientific writing
  • Teaching and talk show

Past experiences

After three years of PhD in France, I worked on oar3 a batch scheduler for HPC platforms as an engineer.

Github Stats

adfaure lang

ecom-m2pgi's People

Contributors

adfaure avatar angiemoomin avatar roughbits01 avatar usernamethefirst avatar vladhack avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ecom-m2pgi's Issues

HMI TODOS (small things to improve)

  • During registering when we check 'Je souhaite faire un compte vendeur' we need to set the focus automatically to the RIB input.
  • When we register and succeed we need to skip login and be redirected to home page.
  • When trying to validate or clear an empty cart we get a success message.
  • As an admin, available nor accessible the option "Devenir vendeur" should be not.
  • The possibility to add to cart then buy nothing but our veriest own pictures while impersonating a seller might be not given.
  • The date of an individual's purchase on display in the "Mes commandes" entry could be intelligible.
  • We may suggest that an input has been wrongly submitted by displaying an error message of some kind if any user type an incorrect password or login in order to sign in.
  • Selling a picture with a negative price is a feature which may be seen as debatable from an economical standpoint.
  • When the price of a picture is fixed above a determined threshold, we could give a feedback saying that the picture is a bit overpriced.
  • Since our website is focused on the sale of digital pictures, letting the possibility of buying a picture twice, despite its commercial interest, could be perceived as a slightly morally questionable practice.
  • When a duplicate member is created, the wildfly server shouldn't crying errors until its mere body become dry.
  • An empty cart shouldn't be possibly validated.
  • Similarly, an already empty cart shouldn't be possibly emptied.
  • When someone mess a little with the search engine, it sometimes says the expected number of matching pictures has been found, but return every picture in the database instead. It doesn't seem to be an elasticsearch related issue, since the json and http requests and all that stuff seem fine to me after a bit of investigation, so I suspect that's something which has more to do with the frontend and the way these things are handled instead. Unfortunately, I haven't succeeded in finding the exact buggy pattern after a while on it, but it shows itself quite often (unless when you try to reproduce it, of course).
  • When someone wants to upload several pictures at once, if the last one is added by using the "Valider et Rajouter" button, and only then the transaction is confirmed thanks to the "Valider et Terminer" button without submitting any other picture this way, there isn't any kind of feedback telling the user that the transaction has succeeded, no message or redirection to the picture management page contrarily to the case where the last picture ends the transaction with the "Valider et Terminer" button.
  • After adding a picture to an upload transaction with the "Valider et Rajouter" button, the picture, the price and the description fields aren't affected and keep their informations. Nevertheless, one may think that resetting them could be an improvement.
  • Not sure that an user needs to know its member ID in the "Mon compte" section, coz it's more a system info than something useful for a lambda member.
  • The pictures layout on the home page can be kinda weird, although the thumbnails are resized to have the same width, the site still struggles to put them into rows rather than into columns, which should be way easier, poor one. That leaves quite many areas unfilled if the pictures' formats differ too much and some could consider the result as a bit unaesthetic.
  • If we judge keeping in memory pictures for a forecoming purchase a possible use of our feature "add to wishlist", to give the possibility of going on these pictures pages from the "Mes photos favorites" one in one clic, or even better, to add them to cart directly should be a wise improvement.

Follow sellers

A seller should not follow himself (herself)

The login of the seller will be shown instead of the id (when looking at the people we follow)

This bug was reported by Marwen, I'll fix it

bug fun

  1. créer un membre.
  2. se déconnecter.
  3. essayez de recréer le même membre (avec le même password)
  4. vous voila connecté :p

publicDTO vs full DTO

protect data

In order to do not communicate the location of the photographies, we will need to find a way to mask data when we send it to the client.
For example the photo have a field : "filelocation" this is the path to the real photo (the one we want to sell). We will need to keep it on the server.
An other example is for the user's password. Even if the user know his password we should keep it on the server. (an other issue should be to encrypt those password).

I have to solution possible a the moment :

  • Create a table in the data base where we will link the private data.
  • Create several DTO kind : publicPhotoDto, privatePhotoDTO etc (I am not sure of this version) .

Bug Signal Table (pk not created correctly)

When the Signal table is created in the database, it's not creating it with the two pks: member pk and photo pk. The only pk is memberid.

It's maybe related to the fact that there is no: private Collection signaledPhotos; (with the respective annotations) in the Member entity. The same would be needed in the Photo entity.

Error HTTP 500 not handled in user login

When the user wants to login and the information is not correct (it's not in the database), there is no information returned to the user. The HTTP 500 (Internal Server Error) can be seen in the browser console.

Bug: manage member

En tant qu'administrateur, si on crée un nouveau membre via l'interface Manage member et que cette création échoue (violation d'une contrainte d'unicité, par exemple), la ligne correspondant à ce membre apparaît tout de même dans le tableau de la page alors que celui-ci n'existe pas.

Localisation des constantes

Dans le code beaucoup de constante ou chaîne de caractère sont utilisées. Par exemple, pour savoir si un utilisateur est connecté il faut récupérer l'attribut "principal" de la session http.
Autre exemple : les access group : "member", "seller". Il serais plus propre d'avoir des constante statiques dans une class afin de transformer "seller" par SecurityStuff.ACCESS_SELLER.

Test unitaire par US

Il faut rédiger des tests unitaires JUnit pour chaque US développée. De préférence, ceux-là ne doivent pas être rédigés par le développeur. Si on le fait pas au fur à mesure que l'on valide les US, on se retrouverait avec énormément de codes de production et peu de tests.

Password

Il faudrais dès que possible crypter les mots de pass dans la bdd.

Order problème

Comme les orders doivent avoir une référence sur le vendeur également car nous devons lui transferer l'argent.

General response builder

Actuellement les réponses du serveur sont créer à la volée . Il serais interressant de creer une réponse plus spécifique a notre application.
Par exemple on pourrais avoir un champ :

 alert {
      type : "success",
      message "opération success"
}

Cette alerte serais alors traduite dans l'application comme une alerte général pour l'utilisateur.
Ce n'est qu'un exemple parmis beaucoup je pense.

Mapping entity/dto

La partie mapping entty/DTO est mal faites. Car si on veut faire la transformation d'un seller par exemple en DTO. Celui ci possède une collection de photo (et inversement une photo à une reeference sur un seller). Dans notre architecture actuel, cela implique d'avoir une référence sur un autre dao dans un dao.
C'est absolument à évité. Il faudrais peut etre créer des classes de mapping spécifique.
J'ai trouvé une api intéréssante qui pourrais faire l'affaire

Logger

We should integrate log4j in order to have applications logs.

Refactoring code angular

Le code angular est un peu "dirt". Il faudrais le refactorer.
Par exemple trouver le moyen de généraliser les message d'érreurs (comme pour la page d'inscription).

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.