customeranalytics 0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. customeranalytics/__init__.py +319 -0
  2. customeranalytics/configs.py +480 -0
  3. customeranalytics/data_storage_configurations/__init__.py +245 -0
  4. customeranalytics/data_storage_configurations/data_access.py +165 -0
  5. customeranalytics/data_storage_configurations/data_works_pipeline.py +207 -0
  6. customeranalytics/data_storage_configurations/es_create_index.py +544 -0
  7. customeranalytics/data_storage_configurations/logger.py +36 -0
  8. customeranalytics/data_storage_configurations/query_es.py +157 -0
  9. customeranalytics/data_storage_configurations/reports.py +684 -0
  10. customeranalytics/data_storage_configurations/schedule_data_integration.py +355 -0
  11. customeranalytics/docs/queries.yaml +245 -0
  12. customeranalytics/docs/web_configs.yaml +2 -0
  13. customeranalytics/exploratory_analysis/__init__.py +109 -0
  14. customeranalytics/exploratory_analysis/churn.py +232 -0
  15. customeranalytics/exploratory_analysis/cohorts.py +535 -0
  16. customeranalytics/exploratory_analysis/descriptive_statistics.py +470 -0
  17. customeranalytics/exploratory_analysis/funnels.py +407 -0
  18. customeranalytics/exploratory_analysis/product_analytics.py +340 -0
  19. customeranalytics/exploratory_analysis/promotion_analytics.py +299 -0
  20. customeranalytics/exploratory_analysis/rfm.py +202 -0
  21. customeranalytics/exploratory_analysis/sample_data/sample_data_avg_order_count_per_promo_per_cust.csv +99 -0
  22. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_1_search.csv +2 -0
  23. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_2_search.csv +46 -0
  24. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_3_search.csv +2 -0
  25. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_4_search.csv +2 -0
  26. customeranalytics/exploratory_analysis/sample_data/sample_data_churn.csv +2 -0
  27. customeranalytics/exploratory_analysis/sample_data/sample_data_churn_weekly.csv +10 -0
  28. customeranalytics/exploratory_analysis/sample_data/sample_data_client_feature_predicted.csv +1590 -0
  29. customeranalytics/exploratory_analysis/sample_data/sample_data_client_kpis.csv +7060 -0
  30. customeranalytics/exploratory_analysis/sample_data/sample_data_clvrfm_anomaly.csv +561 -0
  31. customeranalytics/exploratory_analysis/sample_data/sample_data_clvsegments_amount.csv +8 -0
  32. customeranalytics/exploratory_analysis/sample_data/sample_data_customer_journey.csv +18 -0
  33. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_clv.csv +103 -0
  34. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_downloads.csv +68 -0
  35. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_1_to_2.csv +66 -0
  36. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_2_to_3.csv +64 -0
  37. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_3_to_4.csv +55 -0
  38. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_dimension_values.csv +199 -0
  39. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel.csv +36 -0
  40. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel_downloads.csv +68 -0
  41. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_inorganic_ratio.csv +6070 -0
  42. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_orders.csv +57 -0
  43. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_organic_orders.csv +64 -0
  44. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_products_of_sales.csv +12574 -0
  45. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_discount.csv +64 -0
  46. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_revenue.csv +6070 -0
  47. customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly.csv +6 -0
  48. customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly_2.csv +118 -0
  49. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver.csv +47 -0
  50. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_kpis.csv +2 -0
  51. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_weekday_hour.csv +25 -0
  52. customeranalytics/exploratory_analysis/sample_data/sample_data_dfunnel_anomaly.csv +118 -0
  53. customeranalytics/exploratory_analysis/sample_data/sample_data_dimension_kpis.csv +199 -0
  54. customeranalytics/exploratory_analysis/sample_data/sample_data_dorders_anomaly.csv +85 -0
  55. customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_clusters.csv +6 -0
  56. customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_recency.csv +3740 -0
  57. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel.csv +25 -0
  58. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel_downloads.csv +25 -0
  59. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_inorganic_ratio.csv +2353 -0
  60. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_orders.csv +25 -0
  61. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_organic_orders.csv +2353 -0
  62. customeranalytics/exploratory_analysis/sample_data/sample_data_inorganic_orders_per_promotion_per_day.csv +6070 -0
  63. customeranalytics/exploratory_analysis/sample_data/sample_data_kpis.csv +2 -0
  64. customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_clusters.csv +6 -0
  65. customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_frequency.csv +3740 -0
  66. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel.csv +5 -0
  67. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel_downloads.csv +5 -0
  68. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_orders.csv +4 -0
  69. customeranalytics/exploratory_analysis/sample_data/sample_data_most_combined_products.csv +11 -0
  70. customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_categories.csv +11 -0
  71. customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_products.csv +11 -0
  72. customeranalytics/exploratory_analysis/sample_data/sample_data_order_and_payment_amount_differences.csv +91 -0
  73. customeranalytics/exploratory_analysis/sample_data/sample_data_prepare.csv +101 -0
  74. customeranalytics/exploratory_analysis/sample_data/sample_data_prepare_weekday_hour.csv +25 -0
  75. customeranalytics/exploratory_analysis/sample_data/sample_data_product_kpis.csv +201 -0
  76. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_accept.csv +11 -0
  77. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_reject.csv +7 -0
  78. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_accept.csv +11 -0
  79. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_reject.csv +11 -0
  80. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_comparison.csv +91 -0
  81. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_kpis.csv +99 -0
  82. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_number_of_customer.csv +99 -0
  83. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_accept.csv +81 -0
  84. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_reject.csv +11 -0
  85. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_accept.csv +55 -0
  86. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_reject.csv +37 -0
  87. customeranalytics/exploratory_analysis/sample_data/sample_data_purchase_amount_distribution.csv +22 -0
  88. customeranalytics/exploratory_analysis/sample_data/sample_data_recency_clusters.csv +6 -0
  89. customeranalytics/exploratory_analysis/sample_data/sample_data_recency_monetary.csv +3740 -0
  90. customeranalytics/exploratory_analysis/sample_data/sample_data_rfm.csv +2001 -0
  91. customeranalytics/exploratory_analysis/sample_data/sample_data_ride.csv +101 -0
  92. customeranalytics/exploratory_analysis/sample_data/sample_data_ride_weekday_hour.csv +25 -0
  93. customeranalytics/exploratory_analysis/sample_data/sample_data_segmentation.csv +11 -0
  94. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_amount.csv +10 -0
  95. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_orders.csv +9 -0
  96. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_amount.csv +10 -0
  97. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_orders.csv +11 -0
  98. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_amount.csv +10 -0
  99. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_orders.csv +10 -0
  100. customeranalytics/exploratory_analysis/sample_data/sample_data_user_counts_per_order_seq.csv +47 -0
  101. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_order_per_user.csv +13 -0
  102. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_payment_amount.csv +13 -0
  103. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_session_per_user.csv +13 -0
  104. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_downloads.csv +13 -0
  105. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_1_to_2.csv +13 -0
  106. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_2_to_3.csv +13 -0
  107. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_3_to_4.csv +12 -0
  108. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel.csv +25 -0
  109. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel_downloads.csv +25 -0
  110. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_orders.csv +10 -0
  111. customeranalytics/ml_process/__init__.py +64 -0
  112. customeranalytics/ml_process/ab_test.py +615 -0
  113. customeranalytics/ml_process/anomaly_detection.py +456 -0
  114. customeranalytics/ml_process/clv_prediction.py +301 -0
  115. customeranalytics/ml_process/customer_segmentation.py +354 -0
  116. customeranalytics/ml_process/delivery_analytics.py +754 -0
  117. customeranalytics/utils.py +186 -0
  118. customeranalytics/web/app/__init__.py +37 -0
  119. customeranalytics/web/app/base/__init__.py +9 -0
  120. customeranalytics/web/app/base/forms.py +16 -0
  121. customeranalytics/web/app/base/models.py +43 -0
  122. customeranalytics/web/app/base/routes.py +126 -0
  123. customeranalytics/web/app/base/static/assets/css/app.css +20 -0
  124. customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff +0 -0
  125. customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff2 +0 -0
  126. customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff +0 -0
  127. customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff2 +0 -0
  128. customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff +0 -0
  129. customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff2 +0 -0
  130. customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff +0 -0
  131. customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff2 +0 -0
  132. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff +0 -0
  133. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff2 +0 -0
  134. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff +0 -0
  135. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  136. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff +0 -0
  137. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff2 +0 -0
  138. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff +0 -0
  139. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 +0 -0
  140. customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff +0 -0
  141. customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff2 +0 -0
  142. customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff +0 -0
  143. customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff2 +0 -0
  144. customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff +0 -0
  145. customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff2 +0 -0
  146. customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff +0 -0
  147. customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff2 +0 -0
  148. customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff +0 -0
  149. customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff2 +0 -0
  150. customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff +0 -0
  151. customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff2 +0 -0
  152. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff +0 -0
  153. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff2 +0 -0
  154. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff +0 -0
  155. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  156. customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff +0 -0
  157. customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff2 +0 -0
  158. customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff +0 -0
  159. customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff2 +0 -0
  160. customeranalytics/web/app/base/static/assets/fonts/Inter-italic.var.woff2 +0 -0
  161. customeranalytics/web/app/base/static/assets/fonts/Inter-upright.var.woff2 +0 -0
  162. customeranalytics/web/app/base/static/assets/fonts/Inter.var.woff2 +0 -0
  163. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.eot +0 -0
  164. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.svg +3570 -0
  165. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.ttf +0 -0
  166. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff +0 -0
  167. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff2 +0 -0
  168. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.eot +0 -0
  169. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.svg +801 -0
  170. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.ttf +0 -0
  171. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff +0 -0
  172. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff2 +0 -0
  173. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.eot +0 -0
  174. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.svg +5028 -0
  175. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.ttf +0 -0
  176. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff +0 -0
  177. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff2 +0 -0
  178. customeranalytics/web/app/base/static/assets/img/avatars/avatar-1.png +0 -0
  179. customeranalytics/web/app/base/static/assets/img/avatars/avatar-2.png +0 -0
  180. customeranalytics/web/app/base/static/assets/img/avatars/avatar-3.png +0 -0
  181. customeranalytics/web/app/base/static/assets/img/avatars/avatar-4.png +0 -0
  182. customeranalytics/web/app/base/static/assets/img/avatars/avatar-5.png +0 -0
  183. customeranalytics/web/app/base/static/assets/img/avatars/info.jpeg +0 -0
  184. customeranalytics/web/app/base/static/assets/img/icons/customanality.png +0 -0
  185. customeranalytics/web/app/base/static/assets/img/icons/icon-48x48.png +0 -0
  186. customeranalytics/web/app/base/static/assets/js/app.js +2 -0
  187. customeranalytics/web/app/base/static/assets/js/app.js.LICENSE +566 -0
  188. customeranalytics/web/app/base/static/assets/js/app.js.LICENSE.txt +556 -0
  189. customeranalytics/web/app/base/static/assets/js/modules/bootstrap.js +15 -0
  190. customeranalytics/web/app/base/static/assets/js/modules/chartjs.js +4 -0
  191. customeranalytics/web/app/base/static/assets/js/modules/feather.js +8 -0
  192. customeranalytics/web/app/base/static/assets/js/modules/flatpickr.js +4 -0
  193. customeranalytics/web/app/base/static/assets/js/modules/moment.js +4 -0
  194. customeranalytics/web/app/base/static/assets/js/modules/sidebar.js +23 -0
  195. customeranalytics/web/app/base/static/assets/js/modules/theme.js +16 -0
  196. customeranalytics/web/app/base/templates/accounts/login.html +81 -0
  197. customeranalytics/web/app/base/templates/accounts/register.html +80 -0
  198. customeranalytics/web/app/base/templates/includes/footer.html +28 -0
  199. customeranalytics/web/app/base/templates/includes/navigation.html +51 -0
  200. customeranalytics/web/app/base/templates/includes/scripts.html +3 -0
  201. customeranalytics/web/app/base/templates/includes/sidebar.html +146 -0
  202. customeranalytics/web/app/base/templates/layouts/base-fullscreen.html +36 -0
  203. customeranalytics/web/app/base/templates/layouts/base.html +84 -0
  204. customeranalytics/web/app/base/util.py +30 -0
  205. customeranalytics/web/app/home/__init__.py +9 -0
  206. customeranalytics/web/app/home/forms.py +1039 -0
  207. customeranalytics/web/app/home/models.py +438 -0
  208. customeranalytics/web/app/home/profiles.py +310 -0
  209. customeranalytics/web/app/home/routes.py +386 -0
  210. customeranalytics/web/app/home/search.py +288 -0
  211. customeranalytics/web/app/home/static/assets/img/avatars/avatar-1.png +0 -0
  212. customeranalytics/web/app/home/static/assets/img/avatars/avatar-2.png +0 -0
  213. customeranalytics/web/app/home/static/assets/img/avatars/avatar-3.png +0 -0
  214. customeranalytics/web/app/home/static/assets/img/avatars/avatar-4.png +0 -0
  215. customeranalytics/web/app/home/static/assets/img/avatars/avatar-5.png +0 -0
  216. customeranalytics/web/app/home/static/assets/img/icons/customanality.png +0 -0
  217. customeranalytics/web/app/home/static/assets/img/icons/icon-48x48.png +0 -0
  218. customeranalytics/web/app/home/templates/abtest-product.html +280 -0
  219. customeranalytics/web/app/home/templates/abtest-promotion.html +362 -0
  220. customeranalytics/web/app/home/templates/abtest-segments.html +298 -0
  221. customeranalytics/web/app/home/templates/add-data-delivery.html +184 -0
  222. customeranalytics/web/app/home/templates/add-data-product.html +177 -0
  223. customeranalytics/web/app/home/templates/add-data-purchase.html +392 -0
  224. customeranalytics/web/app/home/templates/anomaly.html +261 -0
  225. customeranalytics/web/app/home/templates/clv.html +211 -0
  226. customeranalytics/web/app/home/templates/cohorts.html +308 -0
  227. customeranalytics/web/app/home/templates/customer-segmentation.html +308 -0
  228. customeranalytics/web/app/home/templates/data-es.html +152 -0
  229. customeranalytics/web/app/home/templates/data-execute.html +397 -0
  230. customeranalytics/web/app/home/templates/delivery.html +404 -0
  231. customeranalytics/web/app/home/templates/funnel-customer.html +240 -0
  232. customeranalytics/web/app/home/templates/funnel-session.html +236 -0
  233. customeranalytics/web/app/home/templates/index.html +524 -0
  234. customeranalytics/web/app/home/templates/index2.html +515 -0
  235. customeranalytics/web/app/home/templates/page-403.html +46 -0
  236. customeranalytics/web/app/home/templates/page-404.html +45 -0
  237. customeranalytics/web/app/home/templates/page-500.html +45 -0
  238. customeranalytics/web/app/home/templates/pages-blank.html +33 -0
  239. customeranalytics/web/app/home/templates/pages-sign-in.html +67 -0
  240. customeranalytics/web/app/home/templates/pages-sign-up.html +61 -0
  241. customeranalytics/web/app/home/templates/product.html +203 -0
  242. customeranalytics/web/app/home/templates/profile.html +1009 -0
  243. customeranalytics/web/app/home/templates/rfm.html +254 -0
  244. customeranalytics/web/app/home/templates/search.html +167 -0
  245. customeranalytics/web/app/home/templates/settings.html +205 -0
  246. customeranalytics/web/app/home/templates/stats-desc.html +230 -0
  247. customeranalytics/web/app/home/templates/stats-purchase.html +221 -0
  248. customeranalytics/web/config.py +30 -0
  249. customeranalytics/web/db.sqlite3 +0 -0
  250. customeranalytics/web/run.py +30 -0
  251. customeranalytics-0.1.dist-info/METADATA +1102 -0
  252. customeranalytics-0.1.dist-info/RECORD +254 -0
  253. customeranalytics-0.1.dist-info/WHEEL +4 -0
  254. customeranalytics-0.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,524 @@
1
+ {% extends "layouts/base.html" %}
2
+
3
+ {% block title %} Overall {% endblock %}
4
+
5
+ <!-- Specific Page CSS goes HERE -->
6
+ {% block stylesheets %}{% endblock stylesheets %}
7
+
8
+ {% block content %}
9
+
10
+ <main class="content">
11
+ <form method="POST">
12
+ <div class="container-fluid p-0">
13
+
14
+ <div class="row mb-2 mb-xl-3">
15
+ <div class="col-auto d-none d-sm-block">
16
+ <h3><strong>Customer Analytics</strong></h3>
17
+ </div>
18
+
19
+ <div class="col-auto ml-auto text-right mt-n1">
20
+ <nav aria-label="breadcrumb">
21
+ <ol class="breadcrumb bg-transparent p-0 mt-1 mb-0">
22
+ <li class="breadcrumb-item active" aria-current="page"><h5><strong>Overall</strong></h5></li>
23
+ <li class="breadcrumb-item"><a href="index2">Customers</a></li>
24
+ </ol>
25
+ </nav>
26
+ </div>
27
+ </div>
28
+ <div class="accordion" id="accordionExample">
29
+ <div class="card">
30
+ <div class="card-header" id="headingOne">
31
+ <h5 class="card-title my-1">
32
+ <a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
33
+ Filters
34
+ </a>
35
+ </h5>
36
+ </div>
37
+ <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
38
+ <form method="POST">
39
+ <div class="row">
40
+ <div class="col-md-6">
41
+ <div class="card">
42
+ <div class="card-body">
43
+ <div class="card">
44
+ <div class="card-header">
45
+ <h5 class="card-title mb-0">Dimension selection</h5>
46
+ </div>
47
+ <div class="card-body">
48
+ <select name="index" id="index" class="form-control">
49
+ {% for d in filters['dimensions'] %}
50
+ {% if d == 'There is no available report. Please execute Schedule Data Process' %}
51
+ <option value= "main">{{ d }}</option>
52
+ {% endif %}
53
+ {% if d != 'There is no available report. Please execute Schedule Data Process' %}
54
+ <option value="{{ d }}">{{ d }}</option>
55
+ {% endif %}
56
+ {% endfor %}
57
+ </select>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+
64
+ <div class="col-md-6">
65
+ <div class="card flex-fil">
66
+ <div class="card-body col-12">
67
+ <div class="col-12 ">
68
+ <div class="align-self-center w-100">
69
+ <div class="chart">
70
+ <input name="date" id="datetimepicker-dashboard" hidden>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="card-header">
79
+ <button type="submit" class="btn btn-pill btn-primary">Apply</button>
80
+ </div>
81
+ </div>
82
+ </form>
83
+ </div>
84
+ </div>
85
+
86
+ <div class="card">
87
+ <div class="card-header" id="headingTwo">
88
+ <h5 class="card-title my-1">
89
+ <a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
90
+ Infos
91
+ </a>
92
+ </h5>
93
+ </div>
94
+ <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
95
+ <div class="card-body ">
96
+ <ul>
97
+ <li>
98
+ <div class="card-header">
99
+ <h5 class="card-title" style="color:green;">Orders - Revenue - Visitors - Discount</h5>
100
+ Orders; Number of purchase count
101
+ Revenue; Total Purchase Amount
102
+ Visitors; Total Unique Visitors Count
103
+ Discount; Total Discount Amount (Optional)
104
+ </div>
105
+ </li>
106
+ <li>
107
+ <div class="card-header">
108
+ <h5 class="card-title" style="color:green;">Daily Orders</h5>
109
+ Total Number of Success Purchase Transaction per day.
110
+ </div>
111
+ </li>
112
+ <li>
113
+ <div class="card-header">
114
+ <h5 class="card-title" style="color:green;">Customer Journey</h5>
115
+ Customers Journey Calculation;
116
+ 1. Calculate average Hour difference from Download to 1st orders.
117
+ 2 . Calculate average order count
118
+ 3 .For each calculated average orders, calculate the average purchase amount,
119
+ Example;
120
+ average 2 orders, 1st orders avg 30.3£, 2nd orders avg 33.3£
121
+ Calculate average recent hours customers last order to a recent date.
122
+
123
+ </div>
124
+ </li>
125
+ <li>
126
+ <div class="card-header">
127
+ <h5 class="card-title" style="color:green;">Churn Rate</h5>
128
+ First, the Frequency value is calculated for each user.
129
+ Frequency is the time difference between each sequential order per customer.
130
+ Each customer's last order date is not expected to be purchased before the average frequency day.
131
+ In other words, Each customer is expected to order at most average frequency days before.
132
+ A number of unique customers who have ordered between average frequency date
133
+ before the current date and current date are engaged users Churn is engaged users
134
+ divided by total unique ordered users.
135
+ </div>
136
+ </li>
137
+ <li>
138
+ <div class="card-header">
139
+ <h5 class="card-title" style="color:green;">Churn Rate Weekly</h5>
140
+ It is calculated the same as the churn rate per week (each Monday of the week).
141
+ </div>
142
+ </li>
143
+ <li>
144
+ <div class="card-header">
145
+ <h5 class="card-title" style="color:green;">Top 10 Purchased Products</h5>
146
+ The most preferred products for the customers.
147
+ Each bar represents the total number of order per product.
148
+ </div>
149
+ </li>
150
+ <li>
151
+ <div class="card-header">
152
+ <h5 class="card-title" style="color:green;">Top 10 Purchased Categories</h5>
153
+ The most preferred product categories for the customers.
154
+ Each bar represents the total number of order per product category.
155
+ </div>
156
+ </li>
157
+ </ul>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </div>
162
+
163
+
164
+ <div class="row">
165
+ <div class="col-xl-6 col-xxl-5 d-flex">
166
+ <div class="w-100">
167
+ <div class="row">
168
+ <div class="col-sm-6">
169
+ <div class="card" style="height:180px;">
170
+ <div class="card-body">
171
+ <h5 class="card-title mb-4">Orders {% if data_type['total_orders'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
172
+ <h1 class="mt-1 mb-3">{{ kpis.total_orders }}</h1>
173
+ <div class="mb-1">
174
+ {% if kpis.since_last_week_orders[0] == '-' %}
175
+ <span class="text-danger"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_orders }}% </span>
176
+ {% endif %}
177
+ {% if kpis.since_last_week_orders[0] != '-' %}
178
+ <span class="text-success"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_orders }}% </span>
179
+ {% endif %}
180
+ <span class="text-muted">Since last week</span>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <div class="card" style="height:180px;">
185
+ <div class="card-body">
186
+ <h5 class="card-title mb-4">Visitors {% if data_type['total_visitors'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
187
+ <h1 class="mt-1 mb-3">{{ kpis.total_visitors }}</h1>
188
+ <div class="mb-1">
189
+ {% if kpis.since_last_week_total_visitors[0] == '-' %}
190
+ <span class="text-danger"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_total_visitors }}% </span>
191
+ {% endif %}
192
+ {% if kpis.since_last_week_total_visitors[0] != '-' %}
193
+ <span class="text-success"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_total_visitors }}% </span>
194
+ {% endif %}
195
+ <span class="text-muted">Since last week</span>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </div>
200
+ <div class="col-sm-6">
201
+ <div class="card" style="height:180px;">
202
+ <div class="card-body">
203
+ <h5 class="card-title mb-4">Revenue {% if data_type['total_revenue'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
204
+ <h1 class="mt-1 mb-3">{{ kpis.total_revenue }}</h1>
205
+ <div class="mb-1">
206
+ {% if kpis.since_last_week_revenue[0] == '-' %}
207
+ <span class="text-danger"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_revenue }}% </span>
208
+ {% endif %}
209
+ {% if kpis.since_last_week_revenue[0] != '-' %}
210
+ <span class="text-success"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_revenue }}% </span>
211
+ {% endif %}
212
+ <span class="text-muted">Since last week</span>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ <div class="card">
217
+ <div class="card-body" style="height:180px;">
218
+ <h5 class="card-title mb-4">Discount {% if data_type['total_discount'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
219
+ <h1 class="mt-1 mb-3">{{ kpis.total_discount }}</h1>
220
+ <div class="mb-1">
221
+ {% if kpis.since_last_week_total_discount[0] == '-' %}
222
+ <span class="text-danger"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_total_discount }}% </span>
223
+ {% endif %}
224
+ {% if kpis.since_last_week_total_discount[0] != '-' %}
225
+ <span class="text-success"> <i class="mdi mdi-arrow-bottom-right"></i> {{ kpis.since_last_week_total_discount }}% </span>
226
+ {% endif %}
227
+ <span class="text-muted">Since last week</span>
228
+ </div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+ </div>
235
+
236
+ <div class="col-xl-6 col-xxl-7" >
237
+ <div class="card flex-fill w-100">
238
+ <div class="card-header">
239
+
240
+ <h5 class="card-title mb-0" >Daily Orders {% if data_type['daily_orders'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
241
+
242
+ </div>
243
+
244
+ <div class="card-body py-3" >
245
+ <div id="chart_asd2" class="chart" style="height:200px;"></div>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ <form method="POST"><div class="row">
251
+ <div class="col-12 col-md-6 col-xxl-3 d-flex order-2 order-xxl-3">
252
+ <div class="card flex-fill w-100">
253
+ <div class="card-header">
254
+ <h5 class="card-title mb-0" >Churn Rate (%) {% if data_type['churn'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
255
+ </div>
256
+ <div class="card-body d-flex">
257
+
258
+ <div id="churn_rate_id" class="chart"></div>
259
+
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div class="col-12 col-md-6 col-xxl-3 d-flex order-2 order-xxl-3">
264
+ <div class="card flex-fill w-100">
265
+ <div class="card-header">
266
+ <h5 class="card-title mb-0" >Churn Rate Weekly (%) {% if data_type['churn_weekly'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
267
+ </div>
268
+ <div class="card-body d-flex">
269
+
270
+ <div id="churn_rate_weekly_id" class="chart"></div>
271
+
272
+ </div>
273
+ </div>
274
+ </div>
275
+ <div class="col-12 col-md-12 col-xxl-6 d-flex order-3 order-xxl-2">
276
+ <div class="card flex-fill w-100">
277
+ <div class="card-header">
278
+ <h5 class="card-title mb-0">Customer Segmentation {% if data_type['segmentation'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
279
+ </div>
280
+ <div class="card-body px-5" style="height:400px;">
281
+ <div id="segmentation" class="chart" style="height:400px;"></div>
282
+
283
+ </div>
284
+ </div>
285
+ </div>
286
+
287
+ </div>
288
+ </form>
289
+
290
+ <div class="row">
291
+ <div class="col-12 col-lg-8 col-xxl-6 d-flex">
292
+ <div class="card flex-fill">
293
+ <div class="card-header">
294
+ <h5 class="card-title mb-0">Customer Journey {% if data_type['customer_journey'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
295
+ </div>
296
+ <div id="cj_id" class="chart" style="height:400px;"></div>
297
+ </div>
298
+ </div>
299
+ <div class="col-12 col-lg-4 col-xxl-3 d-flex">
300
+ <div class="card flex-fill w-100">
301
+ <div class="card-header">
302
+
303
+ <h5 class="card-title mb-0">Top 10 Purchased Products {% if data_type['most_ordered_products'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
304
+ </div>
305
+ <div id="products_id" class="chart" style="height:400px;"></div>
306
+ </div>
307
+ </div>
308
+ <div class="col-12 col-lg-4 col-xxl-3 d-flex">
309
+ <div class="card flex-fill w-100">
310
+ <div class="card-header">
311
+
312
+ <h5 class="card-title mb-0">Top 10 Purchased Categories {% if data_type['most_ordered_categories'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
313
+ </div>
314
+ <div id="categories_id" class="chart" style="height:400px;"></div>
315
+ </div>
316
+ </div>
317
+ </div>
318
+
319
+ </div>
320
+ </form>
321
+
322
+ </main>
323
+
324
+ {% endblock content %}
325
+ <!-- Specific Page JS goes HERE -->
326
+ {% block javascripts %}
327
+ <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
328
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script>
329
+ <script>
330
+
331
+
332
+ var graphs = {{charts | safe}};
333
+
334
+ Plotly.plot('chart_asd2', // the ID of the div, created above
335
+ graphs.trace, graphs.layout, {});
336
+
337
+ var segments = {{customer_segments | safe}};
338
+
339
+ Plotly.plot('segmentation', // the ID of the div, created above
340
+ segments.trace, segments.layout, {});
341
+
342
+ var cj = {{customer_journey | safe}};
343
+
344
+ Plotly.plot('cj_id', // the ID of the div, created above
345
+ cj.trace, cj.layout, {});
346
+
347
+ var products = {{top_products | safe}};
348
+
349
+ Plotly.plot('products_id', // the ID of the div, created above
350
+ products.trace, products.layout, {});
351
+
352
+ var categories = {{top_categories | safe}};
353
+
354
+ Plotly.plot('categories_id', // the ID of the div, created above
355
+ categories.trace, categories.layout, {});
356
+
357
+ var kpis = {{kpis | safe}};
358
+
359
+ total_orders = kpis.total_orders
360
+
361
+ var churn_rate = {{churn | safe}};
362
+
363
+ Plotly.plot('churn_rate_id', // the ID of the div, created above
364
+ churn_rate.trace, churn_rate.layout, {});
365
+
366
+ var churn_rate_weekly = {{churn_weekly | safe}};
367
+
368
+ Plotly.plot('churn_rate_weekly_id', // the ID of the div, created above
369
+ churn_rate_weekly.trace, churn_rate_weekly.layout, {});
370
+
371
+
372
+ document.addEventListener("DOMContentLoaded", function() {
373
+ var ctx = document.getElementById("chartjs-dashboard-line").getContext("2d");
374
+ var gradient = ctx.createLinearGradient(0, 0, 0, 225);
375
+ gradient.addColorStop(0, "rgba(215, 227, 244, 1)");
376
+ gradient.addColorStop(1, "rgba(215, 227, 244, 0)");
377
+ // Line chart
378
+ new Chart(document.getElementById("chartjs-dashboard-line"), {
379
+ type: "line",
380
+ data: {
381
+ labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
382
+ datasets: [{
383
+ label: "Sales ($)",
384
+ fill: true,
385
+ backgroundColor: gradient,
386
+ borderColor: window.theme.primary,
387
+ data: [
388
+ 2115,
389
+ 1562,
390
+ 1584,
391
+ 1892,
392
+ 1587,
393
+ 1923,
394
+ 2566,
395
+ 2448,
396
+ 2805,
397
+ 3438,
398
+ 2917,
399
+ 3327
400
+ ]
401
+ }]
402
+ },
403
+ options: {
404
+ maintainAspectRatio: false,
405
+ legend: {
406
+ display: false
407
+ },
408
+ tooltips: {
409
+ intersect: false
410
+ },
411
+ hover: {
412
+ intersect: true
413
+ },
414
+ plugins: {
415
+ filler: {
416
+ propagate: false
417
+ }
418
+ },
419
+ scales: {
420
+ xAxes: [{
421
+ reverse: true,
422
+ gridLines: {
423
+ color: "rgba(0,0,0,0.0)"
424
+ }
425
+ }],
426
+ yAxes: [{
427
+ ticks: {
428
+ stepSize: 1000
429
+ },
430
+ display: true,
431
+ borderDash: [3, 3],
432
+ gridLines: {
433
+ color: "rgba(0,0,0,0.0)"
434
+ }
435
+ }]
436
+ }
437
+ }
438
+ });
439
+ });
440
+ </script>
441
+ <script>
442
+ document.addEventListener("DOMContentLoaded", function() {
443
+ // Pie chart
444
+ new Chart(document.getElementById("chartjs-dashboard-pie"), {
445
+ type: "pie",
446
+ data: {
447
+ labels: ["Chrome", "Firefox", "IE"],
448
+ datasets: [{
449
+ data: [4306, 3801, 1689],
450
+ backgroundColor: [
451
+ window.theme.primary,
452
+ window.theme.warning,
453
+ window.theme.danger
454
+ ],
455
+ borderWidth: 5
456
+ }]
457
+ },
458
+ options: {
459
+ responsive: !window.MSInputMethodContext,
460
+ maintainAspectRatio: false,
461
+ legend: {
462
+ display: false
463
+ },
464
+ cutoutPercentage: 75
465
+ }
466
+ });
467
+ });
468
+ </script>
469
+ <script>
470
+ document.addEventListener("DOMContentLoaded", function() {
471
+ // Bar chart
472
+ new Chart(document.getElementById("chartjs-dashboard-bar"), {
473
+ type: "bar",
474
+ data: {
475
+ labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
476
+ datasets: [{
477
+ label: "This year",
478
+ backgroundColor: window.theme.primary,
479
+ borderColor: window.theme.primary,
480
+ hoverBackgroundColor: window.theme.primary,
481
+ hoverBorderColor: window.theme.primary,
482
+ data: [54, 67, 41, 55, 62, 45, 55, 73, 60, 76, 48, 79],
483
+ barPercentage: .75,
484
+ categoryPercentage: .5
485
+ }]
486
+ },
487
+ options: {
488
+ maintainAspectRatio: false,
489
+ legend: {
490
+ display: false
491
+ },
492
+ scales: {
493
+ yAxes: [{
494
+ gridLines: {
495
+ display: false
496
+ },
497
+ stacked: false,
498
+ ticks: {
499
+ stepSize: 20
500
+ }
501
+ }],
502
+ xAxes: [{
503
+ stacked: false,
504
+ gridLines: {
505
+ color: "transparent"
506
+ }
507
+ }]
508
+ }
509
+ }
510
+ });
511
+ });
512
+ </script>
513
+ <script>
514
+ document.addEventListener("DOMContentLoaded", function() {
515
+ document.getElementById("datetimepicker-dashboard").flatpickr({
516
+ inline: true,
517
+
518
+ prevArrow: "<span class=\"fas fa-chevron-left\" title=\"Previous month\"></span>",
519
+ nextArrow: "<span class=\"fas fa-chevron-right\" title=\"Next month\"></span>",
520
+ });
521
+ });
522
+ </script>
523
+
524
+ {% endblock javascripts %}