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.
- customeranalytics/__init__.py +319 -0
- customeranalytics/configs.py +480 -0
- customeranalytics/data_storage_configurations/__init__.py +245 -0
- customeranalytics/data_storage_configurations/data_access.py +165 -0
- customeranalytics/data_storage_configurations/data_works_pipeline.py +207 -0
- customeranalytics/data_storage_configurations/es_create_index.py +544 -0
- customeranalytics/data_storage_configurations/logger.py +36 -0
- customeranalytics/data_storage_configurations/query_es.py +157 -0
- customeranalytics/data_storage_configurations/reports.py +684 -0
- customeranalytics/data_storage_configurations/schedule_data_integration.py +355 -0
- customeranalytics/docs/queries.yaml +245 -0
- customeranalytics/docs/web_configs.yaml +2 -0
- customeranalytics/exploratory_analysis/__init__.py +109 -0
- customeranalytics/exploratory_analysis/churn.py +232 -0
- customeranalytics/exploratory_analysis/cohorts.py +535 -0
- customeranalytics/exploratory_analysis/descriptive_statistics.py +470 -0
- customeranalytics/exploratory_analysis/funnels.py +407 -0
- customeranalytics/exploratory_analysis/product_analytics.py +340 -0
- customeranalytics/exploratory_analysis/promotion_analytics.py +299 -0
- customeranalytics/exploratory_analysis/rfm.py +202 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_avg_order_count_per_promo_per_cust.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_1_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_2_search.csv +46 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_3_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_4_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_churn.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_churn_weekly.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_client_feature_predicted.csv +1590 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_client_kpis.csv +7060 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_clvrfm_anomaly.csv +561 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_clvsegments_amount.csv +8 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_customer_journey.csv +18 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_clv.csv +103 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_downloads.csv +68 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_1_to_2.csv +66 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_2_to_3.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_3_to_4.csv +55 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_dimension_values.csv +199 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel.csv +36 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel_downloads.csv +68 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_inorganic_ratio.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_orders.csv +57 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_organic_orders.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_products_of_sales.csv +12574 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_discount.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_revenue.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly_2.csv +118 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver.csv +47 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_kpis.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dfunnel_anomaly.csv +118 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dimension_kpis.csv +199 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dorders_anomaly.csv +85 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_recency.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel_downloads.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_inorganic_ratio.csv +2353 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_orders.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_organic_orders.csv +2353 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_inorganic_orders_per_promotion_per_day.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_kpis.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_frequency.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel.csv +5 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel_downloads.csv +5 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_orders.csv +4 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_combined_products.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_categories.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_products.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_order_and_payment_amount_differences.csv +91 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_prepare.csv +101 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_prepare_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_kpis.csv +201 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_accept.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_reject.csv +7 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_accept.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_reject.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_comparison.csv +91 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_kpis.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_number_of_customer.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_accept.csv +81 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_reject.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_accept.csv +55 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_reject.csv +37 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_purchase_amount_distribution.csv +22 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_recency_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_recency_monetary.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_rfm.csv +2001 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_ride.csv +101 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_ride_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segmentation.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_orders.csv +9 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_orders.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_orders.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_user_counts_per_order_seq.csv +47 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_order_per_user.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_payment_amount.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_session_per_user.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_downloads.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_1_to_2.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_2_to_3.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_3_to_4.csv +12 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel_downloads.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_orders.csv +10 -0
- customeranalytics/ml_process/__init__.py +64 -0
- customeranalytics/ml_process/ab_test.py +615 -0
- customeranalytics/ml_process/anomaly_detection.py +456 -0
- customeranalytics/ml_process/clv_prediction.py +301 -0
- customeranalytics/ml_process/customer_segmentation.py +354 -0
- customeranalytics/ml_process/delivery_analytics.py +754 -0
- customeranalytics/utils.py +186 -0
- customeranalytics/web/app/__init__.py +37 -0
- customeranalytics/web/app/base/__init__.py +9 -0
- customeranalytics/web/app/base/forms.py +16 -0
- customeranalytics/web/app/base/models.py +43 -0
- customeranalytics/web/app/base/routes.py +126 -0
- customeranalytics/web/app/base/static/assets/css/app.css +20 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-italic.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-upright.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.svg +3570 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.svg +801 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.svg +5028 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-1.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-2.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-3.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-4.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-5.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/info.jpeg +0 -0
- customeranalytics/web/app/base/static/assets/img/icons/customanality.png +0 -0
- customeranalytics/web/app/base/static/assets/img/icons/icon-48x48.png +0 -0
- customeranalytics/web/app/base/static/assets/js/app.js +2 -0
- customeranalytics/web/app/base/static/assets/js/app.js.LICENSE +566 -0
- customeranalytics/web/app/base/static/assets/js/app.js.LICENSE.txt +556 -0
- customeranalytics/web/app/base/static/assets/js/modules/bootstrap.js +15 -0
- customeranalytics/web/app/base/static/assets/js/modules/chartjs.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/feather.js +8 -0
- customeranalytics/web/app/base/static/assets/js/modules/flatpickr.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/moment.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/sidebar.js +23 -0
- customeranalytics/web/app/base/static/assets/js/modules/theme.js +16 -0
- customeranalytics/web/app/base/templates/accounts/login.html +81 -0
- customeranalytics/web/app/base/templates/accounts/register.html +80 -0
- customeranalytics/web/app/base/templates/includes/footer.html +28 -0
- customeranalytics/web/app/base/templates/includes/navigation.html +51 -0
- customeranalytics/web/app/base/templates/includes/scripts.html +3 -0
- customeranalytics/web/app/base/templates/includes/sidebar.html +146 -0
- customeranalytics/web/app/base/templates/layouts/base-fullscreen.html +36 -0
- customeranalytics/web/app/base/templates/layouts/base.html +84 -0
- customeranalytics/web/app/base/util.py +30 -0
- customeranalytics/web/app/home/__init__.py +9 -0
- customeranalytics/web/app/home/forms.py +1039 -0
- customeranalytics/web/app/home/models.py +438 -0
- customeranalytics/web/app/home/profiles.py +310 -0
- customeranalytics/web/app/home/routes.py +386 -0
- customeranalytics/web/app/home/search.py +288 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-1.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-2.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-3.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-4.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-5.png +0 -0
- customeranalytics/web/app/home/static/assets/img/icons/customanality.png +0 -0
- customeranalytics/web/app/home/static/assets/img/icons/icon-48x48.png +0 -0
- customeranalytics/web/app/home/templates/abtest-product.html +280 -0
- customeranalytics/web/app/home/templates/abtest-promotion.html +362 -0
- customeranalytics/web/app/home/templates/abtest-segments.html +298 -0
- customeranalytics/web/app/home/templates/add-data-delivery.html +184 -0
- customeranalytics/web/app/home/templates/add-data-product.html +177 -0
- customeranalytics/web/app/home/templates/add-data-purchase.html +392 -0
- customeranalytics/web/app/home/templates/anomaly.html +261 -0
- customeranalytics/web/app/home/templates/clv.html +211 -0
- customeranalytics/web/app/home/templates/cohorts.html +308 -0
- customeranalytics/web/app/home/templates/customer-segmentation.html +308 -0
- customeranalytics/web/app/home/templates/data-es.html +152 -0
- customeranalytics/web/app/home/templates/data-execute.html +397 -0
- customeranalytics/web/app/home/templates/delivery.html +404 -0
- customeranalytics/web/app/home/templates/funnel-customer.html +240 -0
- customeranalytics/web/app/home/templates/funnel-session.html +236 -0
- customeranalytics/web/app/home/templates/index.html +524 -0
- customeranalytics/web/app/home/templates/index2.html +515 -0
- customeranalytics/web/app/home/templates/page-403.html +46 -0
- customeranalytics/web/app/home/templates/page-404.html +45 -0
- customeranalytics/web/app/home/templates/page-500.html +45 -0
- customeranalytics/web/app/home/templates/pages-blank.html +33 -0
- customeranalytics/web/app/home/templates/pages-sign-in.html +67 -0
- customeranalytics/web/app/home/templates/pages-sign-up.html +61 -0
- customeranalytics/web/app/home/templates/product.html +203 -0
- customeranalytics/web/app/home/templates/profile.html +1009 -0
- customeranalytics/web/app/home/templates/rfm.html +254 -0
- customeranalytics/web/app/home/templates/search.html +167 -0
- customeranalytics/web/app/home/templates/settings.html +205 -0
- customeranalytics/web/app/home/templates/stats-desc.html +230 -0
- customeranalytics/web/app/home/templates/stats-purchase.html +221 -0
- customeranalytics/web/config.py +30 -0
- customeranalytics/web/db.sqlite3 +0 -0
- customeranalytics/web/run.py +30 -0
- customeranalytics-0.1.dist-info/METADATA +1102 -0
- customeranalytics-0.1.dist-info/RECORD +254 -0
- customeranalytics-0.1.dist-info/WHEEL +4 -0
- 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 %}
|