refactor event rating calculation and introduce event-cart component