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,81 @@
1
+ {% extends "layouts/base-fullscreen.html" %}
2
+
3
+ {% block title %} Login {% endblock %}
4
+
5
+ <!-- Specific Page CSS goes HERE -->
6
+ {% block stylesheets %}{% endblock stylesheets %}
7
+
8
+ {% block content %}
9
+
10
+ <main class="d-flex w-100">
11
+ <div class="container d-flex flex-column">
12
+ <div class="row vh-100">
13
+ <div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
14
+ <div class="d-table-cell align-middle">
15
+
16
+ <div class="text-center mt-4">
17
+ <h1 class="h2">
18
+ <img src="/static/assets/img/icons/customanality.png">
19
+ </h1>
20
+ <p class="lead">
21
+ {% if msg %}
22
+ {{ msg | safe }}
23
+ {% else %}
24
+ Sign in to your account to continue
25
+ {% endif %}
26
+ </p>
27
+ </div>
28
+
29
+ <div class="card">
30
+ <div class="card-body">
31
+ <div class="m-sm-4">
32
+
33
+ <form role="form" method="post" action="">
34
+
35
+ {{ form.hidden_tag() }}
36
+
37
+ <div class="mb-3">
38
+ <label class="form-label">Username</label>
39
+ {{ form.username(placeholder="Username", class="form-control form-control-lg") }}
40
+ </div>
41
+ <div class="mb-3">
42
+ <label class="form-label">Password</label>
43
+ {{ form.password(placeholder="Password", class="form-control form-control-lg", type="password") }}
44
+ </div>
45
+ <div>
46
+ <label class="form-check">
47
+ <input class="form-check-input" type="checkbox" value="remember-me" name="remember-me" checked>
48
+ <span class="form-check-label">
49
+ Remember me next time
50
+ </span>
51
+ </label>
52
+ </div>
53
+ <div class="text-center mt-3">
54
+ <button type="submit" name="login" class="btn btn-lg btn-primary">Login</button>
55
+ </div>
56
+ </form>
57
+
58
+ <br />
59
+ <div class="text-center">
60
+
61
+ <p class="mb-0 text-muted">
62
+ Don’t have an account? <a href="{{ url_for('base_blueprint.register') }}" >Signup</a></p>
63
+ <br />
64
+
65
+
66
+ </div>
67
+
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </main>
77
+
78
+ {% endblock content %}
79
+
80
+ <!-- Specific Page JS goes HERE -->
81
+ {% block javascripts %}{% endblock javascripts %}
@@ -0,0 +1,80 @@
1
+ {% extends "layouts/base-fullscreen.html" %}
2
+
3
+ {% block title %} Register {% endblock %}
4
+
5
+ <!-- Specific Page CSS goes HERE -->
6
+ {% block stylesheets %}{% endblock stylesheets %}
7
+
8
+ {% block content %}
9
+
10
+ <main class="d-flex w-100">
11
+ <div class="container d-flex flex-column">
12
+ <div class="row vh-100">
13
+ <div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
14
+ <div class="d-table-cell align-middle">
15
+
16
+ <div class="text-center mt-4">
17
+ <h1 class="h2">
18
+ Customer Analytics
19
+ </h1>
20
+ <p class="lead">
21
+ {% if msg %}
22
+ {{ msg | safe }}
23
+ {% else %}
24
+ Add your credentials
25
+ {% endif %}
26
+ </p>
27
+ </div>
28
+
29
+ <div class="card">
30
+ <div class="card-body">
31
+ <div class="m-sm-4">
32
+
33
+ <form role="form" method="post" action="">
34
+
35
+ {{ form.hidden_tag() }}
36
+
37
+ <div class="mb-3">
38
+ <label class="form-label">Username</label>
39
+ {{ form.username(placeholder="Username", class="form-control form-control-lg") }}
40
+ </div>
41
+
42
+ <div class="mb-3">
43
+ <label class="form-label">Email</label>
44
+ {{ form.email(placeholder="Email", class="input form-control form-control-lg", type="email") }}
45
+ </div>
46
+
47
+ <div class="mb-3">
48
+ <label class="form-label">Password</label>
49
+ {{ form.password(placeholder="Password", class="form-control form-control-lg", type="password") }}
50
+ </div>
51
+
52
+ <div class="text-center mt-3">
53
+ <button type="submit" name="register" class="btn btn-lg btn-primary">Register</button>
54
+ </div>
55
+ </form>
56
+
57
+ <br />
58
+ <div class="text-center">
59
+
60
+ <p class="mb-0 text-muted">
61
+ Already have an account? <a href="{{ url_for('base_blueprint.login') }}" >Login</a></p>
62
+ <br />
63
+
64
+
65
+ </div>
66
+
67
+ </div>
68
+ </div>
69
+ </div>
70
+
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </main>
76
+
77
+ {% endblock content %}
78
+
79
+ <!-- Specific Page JS goes HERE -->
80
+ {% block javascripts %}{% endblock javascripts %}
@@ -0,0 +1,28 @@
1
+
2
+ <footer class="footer">
3
+ <div class="container-fluid">
4
+ <div class="row text-muted">
5
+ <div class="col-6 text-left">
6
+ <p class="mb-0">
7
+ <a target="_blank" href="https://github.com/caglanakpinar/customer_analytics" class="text-muted">
8
+ &copy; <strong>caglanakpinar</strong>
9
+ </a>
10
+ - coded by <a target="_blank" href="https://github.com/caglanakpinar">caglanakpinar</a>
11
+ </p>
12
+ </div>
13
+ <div class="col-6 text-right">
14
+ <ul class="list-inline">
15
+ <li class="list-inline-item">
16
+ <a class="text-muted"
17
+ target="_blank" href="https://github.com/caglanakpinar/customer_analytics/issues">Support</a>
18
+ </li>
19
+ <li class="list-inline-item">
20
+ <a class="text-muted"
21
+ target="_blank" href="https://github.com/caglanakpinar/customer_analytics">Sources</a>
22
+ </li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </footer>
28
+
@@ -0,0 +1,51 @@
1
+
2
+ <nav class="navbar navbar-expand navbar-light navbar-bg">
3
+ <a class="sidebar-toggle d-flex">
4
+ <i class="hamburger align-self-center"></i>
5
+ </a>
6
+
7
+ <form class="d-none d-sm-inline-block" method="POST" action="/search">
8
+ <div class="input-group input-group-navbar">
9
+ <input name="search"
10
+ type="text" class="form-control" placeholder="Search…" aria-label="Search">
11
+ <button class="btn" type="submit" >
12
+ <i class="align-middle" data-feather="search"></i>
13
+ </button>
14
+ </div>
15
+ </form>
16
+
17
+ <div class="navbar-collapse collapse">
18
+ <ul class="navbar-nav navbar-align">
19
+
20
+ <li class="nav-item dropdown">
21
+ <a class="nav-icon dropdown-toggle d-inline-block d-sm-none" href="#" data-toggle="dropdown">
22
+ <i class="align-middle" data-feather="settings"></i>
23
+ </a>
24
+
25
+ <a class="nav-link dropdown-toggle d-none d-sm-inline-block" href="#" data-toggle="dropdown">
26
+ {% if pic != 'None' %}
27
+ <img src="/static/assets/img/avatars/{{ pic }}" class="avatar img-fluid rounded mr-1" />
28
+ {% endif %}
29
+ <span class="text-dark">
30
+ {{ current_user.username }}
31
+ </span>
32
+ </a>
33
+
34
+ <div class="dropdown-menu dropdown-menu-right">
35
+ <a class="dropdown-item" href="/profile.html">
36
+ <i class="align-middle mr-1" data-feather="user"></i> Profile</a>
37
+ <a class="dropdown-item" href="index.html">
38
+ <i class="align-middle mr-1" data-feather="pie-chart"></i> Dashboards</a>
39
+ <div class="dropdown-divider"></div>
40
+ <a class="dropdown-item" href="settings.html">
41
+ <i class="align-middle mr-1" data-feather="settings"></i> Settings & Privacy</a>
42
+ <a class="dropdown-item" href="https://github.com/caglanakpinar/customer_analytics/issues">
43
+ <i class="align-middle mr-1" data-feather="help-circle"></i> Help Center</a>
44
+ <div class="dropdown-divider"></div>
45
+ <a class="dropdown-item" href="{{ url_for('base_blueprint.logout') }}">Log out</a>
46
+ </div>
47
+ </li>
48
+ </ul>
49
+ </div>
50
+ </nav>
51
+
@@ -0,0 +1,3 @@
1
+
2
+ <!-- Core -->
3
+ <script src="/static/assets/js/app.js"></script>
@@ -0,0 +1,146 @@
1
+
2
+ <nav id="sidebar" class="sidebar">
3
+ <div class="sidebar-content js-simplebar">
4
+ <a class="sidebar-brand" href="index">
5
+ <span class="align-middle"><img src="/static/assets/img/icons/customanality.png"></span>
6
+ </a>
7
+
8
+ <ul class="sidebar-nav">
9
+ <li class="sidebar-header">
10
+ Configurations
11
+ </li>
12
+
13
+ <li class="sidebar-item">
14
+ <a data-target="#profile" data-toggle="collapse" class="sidebar-link collapsed">
15
+ <i class="align-middle" data-feather="user"></i> <span class="align-middle">Profile & Settings</span>
16
+ </a>
17
+ <ul id="profile" class="sidebar-dropdown list-unstyled collapse {% if 'profile' in segment or 'settings' in segment or 'pages-sign-in' in segment or 'pages-sign-up' in segment %} show {% endif %}" data-parent="#sidebar">
18
+ <li class="sidebar-item {% if 'profile' in segment %} active {% endif %}"><a class="sidebar-link" href="profile.html">Profile</a></li>
19
+ <li class="sidebar-item {% if 'settings' in segment %} active {% endif %}"><a class="sidebar-link" href="settings.html">Settings</a></li>
20
+ <li class="sidebar-item {% if 'pages-sign-up' in segment %} active {% endif %}"><a class="sidebar-link" href="pages-sign-in.html">Sign In</a></li>
21
+ <li class="sidebar-item {% if 'pages-sign-up' in segment %} active {% endif %}"><a class="sidebar-link" href="pages-sign-up.html">Sign Up</a></li>
22
+ </ul>
23
+ </li>
24
+
25
+ <li class="sidebar-header">
26
+ Data Source
27
+ </li>
28
+
29
+
30
+ <li class="sidebar-item">
31
+ <a data-target="#integration" data-toggle="collapse" class="sidebar-link collapsed">
32
+ <i class="align-middle" data-feather="database"></i> <span class="align-middle">Create Data Source</span>
33
+ </a>
34
+ <ul id="integration" class="sidebar-dropdown list-unstyled collapse {% if 'add' in segment or 'manage' in segment or 'data-es' in segment %} show {% endif %}" data-parent="#sidebar">
35
+ <li class="sidebar-item {% if 'data-es' in segment %} active {% endif %}"><a class="sidebar-link" href="data-es">ElasticSearch Configurations</a></li>
36
+ <li class="sidebar-item {% if 'purchase' in segment %} active {% endif %}"><a class="sidebar-link" href="add-data-purchase">Session & Customers</a></li>
37
+ <li class="sidebar-item {% if 'product' in segment %} active {% endif %}"><a class="sidebar-link" href="add-data-product">Baskets</a></li>
38
+ <li class="sidebar-item {% if 'delivery' in segment %} active {% endif %}"><a class="sidebar-link" href="add-data-delivery">Deliveries</a></li>
39
+
40
+ </ul>
41
+ </li>
42
+
43
+ <li class="sidebar-item {% if 'execute' in segment %} active {% endif %}">
44
+ <a class="sidebar-link" href="data-execute">
45
+ <i class="align-middle" data-feather="clock"></i> <span class="align-middle">Schedule Data Process</span>
46
+ </a>
47
+ </li>
48
+
49
+ <li class="sidebar-header">
50
+ Exploratory Analysis
51
+ </li>
52
+ <li class="sidebar-item">
53
+ <a data-target="#funnel" data-toggle="collapse" class="sidebar-link collapsed">
54
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Funnels</span>
55
+ </a>
56
+ <ul id="funnel" class="sidebar-dropdown list-unstyled collapse {% if 'funnel-session' in segment or 'funnel-customer' in segment %} show {% endif %}" data-parent="#sidebar">
57
+ <li class="sidebar-item {% if 'funnel-session' in segment %} active {% endif %}"><a class="sidebar-link" href="funnel-session">Session of Actions Funnel</a></li>
58
+ <li class="sidebar-item {% if 'funnel-customer' in segment %} active {% endif %}"><a class="sidebar-link" href="funnel-customer">Customer of Actions Funnel</a></li>
59
+ </ul>
60
+ </li>
61
+ <li class="sidebar-item">
62
+ <a data-target="#cohort" data-toggle="collapse" class="sidebar-link collapsed">
63
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Cohorts</span>
64
+ </a>
65
+ <ul id="cohort" class="sidebar-dropdown list-unstyled collapse {% if 'cohorts' in segment %} show {% endif %}" data-parent="#sidebar">
66
+ <li class="sidebar-item {% if 'cohorts' in segment %} active {% endif %}"><a class="sidebar-link" href="cohorts">Daily/Weekly Order Cohorts</a></li>
67
+ </ul>
68
+ </li>
69
+
70
+ <li class="sidebar-item">
71
+ <a data-target="#stats" data-toggle="collapse" class="sidebar-link collapsed">
72
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Descriptive Stats</span>
73
+ </a>
74
+ <ul id="stats" class="sidebar-dropdown list-unstyled collapse {% if 'stats' in segment %} show {% endif %}" data-parent="#sidebar">
75
+ <li class="sidebar-item {% if 'stats-purchase' in segment %} active {% endif %}"><a class="sidebar-link" href="stats-purchase">Stats Purchase</a></li>
76
+ <li class="sidebar-item {% if 'stats-desc' in segment %} active {% endif %}"><a class="sidebar-link" href="stats-desc">Descriptive Statistics</a></li>
77
+ </ul>
78
+ </li>
79
+
80
+ <li class="sidebar-item">
81
+ <a data-target="#product-analytics" data-toggle="collapse" class="sidebar-link collapsed">
82
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Product Analytics</span>
83
+ </a>
84
+ <ul id="product-analytics" class="sidebar-dropdown list-unstyled collapse " data-parent="#sidebar">
85
+ <li class="sidebar-item"><a class="sidebar-link" href="product">Top Purchased Products</a></li>
86
+ </ul>
87
+ </li>
88
+
89
+ <li class="sidebar-header">
90
+ ML Works
91
+ </li>
92
+
93
+ <li class="sidebar-item">
94
+ <a data-target="#abtest" data-toggle="collapse" class="sidebar-link collapsed">
95
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">A/B Tests</span>
96
+ </a>
97
+ <ul id="abtest" class="sidebar-dropdown list-unstyled collapse {% if 'abtest' in segment %} show {% endif %}" data-parent="#sidebar">
98
+ <li class="sidebar-item {% if 'abtest-promotion' in segment %} active {% endif %}"><a class="sidebar-link" href="abtest-promotion">A/B Test Promotion</a></li>
99
+ <li class="sidebar-item {% if 'abtest-product' in segment %} active {% endif %}"><a class="sidebar-link" href="abtest-product">A/B Test Product</a></li>
100
+ <li class="sidebar-item {% if 'abtest-segments' in segment %} active {% endif %}"><a class="sidebar-link" href="abtest-segments">A/B Test Customer Segment Change</a></li>
101
+ </ul>
102
+ </li>
103
+
104
+ <li class="sidebar-item">
105
+ <a data-target="#customer-segmentation" data-toggle="collapse" class="sidebar-link collapsed">
106
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Customer Segmentation</span>
107
+ </a>
108
+ <ul id="customer-segmentation" class="sidebar-dropdown list-unstyled collapse {% if 'customer-segmentation' in segment or 'rfm' in segment %} show {% endif %}" data-parent="#sidebar">
109
+ <li class="sidebar-item {% if 'rfm' in segment %} active {% endif %}"><a class="sidebar-link" href="rfm">RFM</a></li>
110
+ <li class="sidebar-item {% if 'customer-segmentation' in segment %} active {% endif %}"><a class="sidebar-link" href="customer-segmentation">Segmentations</a></li>
111
+ </ul>
112
+ </li>
113
+
114
+ <li class="sidebar-item">
115
+ <a data-target="#clv" data-toggle="{% if 'clv' in segment %} active {% endif %}" class="sidebar-link collapsed" href="clv">
116
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle" >CLV Prediction</span>
117
+ </a>
118
+ </li>
119
+
120
+ <li class="sidebar-item">
121
+ <a data-target="#anomaly" data-toggle="{% if 'anomaly' in segment %} active {% endif %}" class="sidebar-link collapsed" href="anomaly">
122
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Anomaly Detection</span>
123
+ </a>
124
+ </li>
125
+
126
+ <li class="sidebar-item">
127
+ <a data-target="#delivery" data-toggle="{% if 'delivery' in segment %} active {% endif %}" class="sidebar-link collapsed" href="delivery">
128
+ <i class="align-middle" data-feather="briefcase"></i> <span class="align-middle">Delivery Analytics</span>
129
+ </a>
130
+ </li>
131
+
132
+ <li class="sidebar-header">
133
+ Auth
134
+ </li>
135
+ <li class="sidebar-item">
136
+ <a class="sidebar-link" href="{{ url_for('base_blueprint.logout') }}">
137
+ <i class="align-middle" data-feather="log-out"></i>
138
+ <span class="align-middle">Logout</span>
139
+ </a>
140
+ </li>
141
+
142
+ </ul>
143
+
144
+ </div>
145
+ </nav>
146
+
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8
+ <meta name="description" content="Responsive Admin &amp; Dashboard - Customer Analytics">
9
+ <meta name="author" content="CustomerAnalytics">
10
+ <meta name="keywords" content="Customer Analytics">
11
+
12
+ <link rel="shortcut icon" href="/static/assets/img/icons/icon-48x48.png" />
13
+ <link id="asd" rel="shortcut icon" href="/static/assets/img/icons/customanality.png" />
14
+
15
+ <title>
16
+ CustomerAnalytics - {% block title %}{% endblock %}
17
+ </title>
18
+
19
+ <link href="/static/assets/css/app.css" rel="stylesheet">
20
+
21
+ <!-- Specific Page CSS goes HERE -->
22
+ {% block stylesheets %}{% endblock stylesheets %}
23
+
24
+ </head>
25
+
26
+ <body>
27
+
28
+ {% block content %}{% endblock content %}
29
+
30
+ {% include 'includes/scripts.html' %}
31
+
32
+ <!-- Specific Page JS goes HERE -->
33
+ {% block javascripts %}{% endblock javascripts %}
34
+
35
+ </body>
36
+ </html>
@@ -0,0 +1,84 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8
+ <meta name="description" content="Responsive Admin &amp; Dashboard - Customer Analytics">
9
+ <meta name="author" content="customanality">
10
+ <meta name="keywords" content="customanality Customer Analytics">
11
+
12
+ <link rel="shortcut icon" href="/static/assets/img/icons/icon-48x48.png" />
13
+ <link rel="shortcut icon" href="/static/assets/img/icons/customanality.png" />
14
+
15
+ <title>
16
+ CustomerAnalytics - {% block title %}{% endblock %}
17
+ </title>
18
+
19
+ <link href="/static/assets/css/app.css" rel="stylesheet">
20
+
21
+ <!-- Specific Page CSS goes HERE -->
22
+ {% block stylesheets %}{% endblock stylesheets %}
23
+
24
+ </head>
25
+
26
+ <body>
27
+ <div class="wrapper">
28
+
29
+ {% include 'includes/sidebar.html' %}
30
+
31
+ <div class="main">
32
+
33
+ {% include 'includes/navigation.html' %}
34
+
35
+ {% block content %}{% endblock content %}
36
+
37
+ {% include 'includes/footer.html' %}
38
+
39
+ </div>
40
+ </div>
41
+ <style>
42
+
43
+ #profileImage {
44
+ width: 150px;
45
+ height: 150px;
46
+ border-radius: 50%;
47
+ background: #512DA8;
48
+ font-size: 35px;
49
+ color: #fff;
50
+ text-align: center;
51
+ line-height: 150px;
52
+ margin: 20px 0;
53
+ }
54
+ </style>
55
+
56
+ {% include 'includes/scripts.html' %}
57
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script>
58
+ <!-- jQuery -->
59
+ <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
60
+ <!-- Specific Page JS goes HERE -->
61
+ <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
62
+ {% block javascripts %}
63
+ <script>
64
+
65
+ $(document).ready(function(){
66
+ var firstName = $('#firstName').text();
67
+ var lastName = $('#lastName').text();
68
+ var intials = $('#firstName').text().charAt(0) + $('#lastName').text().charAt(0);
69
+ var profileImage = $('#profileImage').text(intials);
70
+ });
71
+
72
+ $(document).ready(function(){
73
+ var firstName = $('#firstName').text();
74
+ var lastName = $('#lastName').text();
75
+ var intials = $('#firstName').text().charAt(0) + $('#lastName').text().charAt(0);
76
+ var profileImage = $('#profileImageTop').text(intials);
77
+ });
78
+
79
+ </script>
80
+
81
+ {% endblock javascripts %}
82
+
83
+ </body>
84
+ </html>
@@ -0,0 +1,30 @@
1
+ """
2
+ Inspiration -> https://www.vitoshacademy.com/hashing-passwords-in-python/
3
+ """
4
+
5
+ import hashlib
6
+ import binascii
7
+ import os
8
+
9
+
10
+ def hash_pass( password ):
11
+ """
12
+ Hash a password for storing.
13
+ """
14
+ salt = hashlib.sha256(os.urandom(60)).hexdigest().encode('ascii')
15
+ pwd_hash = hashlib.pbkdf2_hmac('sha512', password.encode('utf-8'), salt, 100000)
16
+ pwd_hash = binascii.hexlify(pwd_hash)
17
+ return (salt + pwd_hash) # return bytes
18
+
19
+
20
+ def verify_pass(provided_password, stored_password):
21
+ """V
22
+ verify a stored password against one provided by user
23
+ """
24
+ stored_password = stored_password.decode('ascii')
25
+ salt = stored_password[:64]
26
+ stored_password = stored_password[64:]
27
+ pwd_hash = hashlib.pbkdf2_hmac('sha512', provided_password.encode('utf-8'), salt.encode('ascii'), 100000)
28
+ pwd_hash = binascii.hexlify(pwd_hash).decode('ascii')
29
+ return pwd_hash == stored_password
30
+
@@ -0,0 +1,9 @@
1
+ from flask import Blueprint
2
+
3
+ blueprint = Blueprint(
4
+ 'home_blueprint',
5
+ __name__,
6
+ url_prefix='',
7
+ template_folder='templates',
8
+ static_folder='static'
9
+ )