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,515 @@
|
|
|
1
|
+
{% extends "layouts/base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Customers {% 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"><a href="index">Overall</a></li>
|
|
23
|
+
<li class="breadcrumb-item" aria-current="page"><h5><strong>Customers</strong></h5></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
|
+
|
|
98
|
+
<li>
|
|
99
|
+
<div class="card-header">
|
|
100
|
+
<h5 class="card-title" style="color:green;">Payment Amount Distribution</h5>
|
|
101
|
+
X Axis is the purchase amount values with bins.
|
|
102
|
+
Y Axis is number of Unique Customer count related to their average purchase amounts.
|
|
103
|
+
This Distribution allows us the see how much customers are willing to pay for a purchase.
|
|
104
|
+
</div>
|
|
105
|
+
</li>
|
|
106
|
+
<li>
|
|
107
|
+
<div class="card-header">
|
|
108
|
+
<h5 class="card-title" style="color:green;">Total Number Customer Breakdown with Purchased Order Count</h5>
|
|
109
|
+
X Axis is Order Counts staring with 1.
|
|
110
|
+
Y Axis is number of Unique Customer count related to their order counts.
|
|
111
|
+
This Distribution allows us the see overall potential of your business.
|
|
112
|
+
</div>
|
|
113
|
+
</li>
|
|
114
|
+
<li>
|
|
115
|
+
<div class="card-header">
|
|
116
|
+
<h5 class="card-title" style="color:green;">RFM</h5>
|
|
117
|
+
X Axis represents 'recency'.
|
|
118
|
+
Y Axis represents 'monetary'.
|
|
119
|
+
Z Axis represents 'frequency'.
|
|
120
|
+
Recency metric is a time difference between customers of last purchase transaction date to recent date.
|
|
121
|
+
Monetary metric is average purchase amount per customer.
|
|
122
|
+
Frequency metric is average time difference per between purchase date of each order per customer.
|
|
123
|
+
There is a colored dots. These are represents the segmented customers according to their RFM values.
|
|
124
|
+
</div>
|
|
125
|
+
</li>
|
|
126
|
+
<li>
|
|
127
|
+
<div class="card-header">
|
|
128
|
+
<h5 class="card-title" style="color:green;">Download to First Order Cohort</h5>
|
|
129
|
+
If there isn`t any downloaded date, you may assign any date which is related to customers of first event with your business.
|
|
130
|
+
This cohort of date column represent download date. If it is Weekly Cohort it will represent the mondays of each week.
|
|
131
|
+
Otherwise it will represent days.
|
|
132
|
+
Each Numeric column from 0 to 15 are the day differences after the downloaded date.
|
|
133
|
+
For instance, if date columns is 2021-05-06, and numeric column is 10 and value is 100,
|
|
134
|
+
this refers that there are 100 customers who have downloads in 2021-05-06 and have first orders 10 days later.
|
|
135
|
+
</div>
|
|
136
|
+
</li>
|
|
137
|
+
|
|
138
|
+
<li>
|
|
139
|
+
<div class="card-header">
|
|
140
|
+
<h5 class="card-title" style="color:green;">Daily Funnel</h5>
|
|
141
|
+
X Axis represents days that are stored in ElasticSearch.
|
|
142
|
+
Y Axis represents number of transactions such as order count, session count, add product the basket transaction count per day.
|
|
143
|
+
In order to show actions such as add product the basket transaction count except order count, session count,
|
|
144
|
+
these actions must be added to actions label while creating Sessions data source
|
|
145
|
+
(For more information pls. check Create Data Source - Sessions & Customers)
|
|
146
|
+
</div>
|
|
147
|
+
</li>
|
|
148
|
+
</ul>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
<div class="row">
|
|
156
|
+
<div class="col-xl-8 col-xxl-6" >
|
|
157
|
+
<div class="card flex-fill w-100">
|
|
158
|
+
<div class="card-header">
|
|
159
|
+
|
|
160
|
+
<h5 class="card-title mb-0" >Payment Amount Distribution {% if data_type['purchase_amount_distribution'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
161
|
+
</div>
|
|
162
|
+
<div class="card-body py-3" >
|
|
163
|
+
<div id="pa_distribution_id" class="chart" style="height:300px;"></div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
<div class="col-xl-8 col-xxl-6" >
|
|
170
|
+
<div class="card flex-fill w-100">
|
|
171
|
+
<div class="card-header">
|
|
172
|
+
|
|
173
|
+
<h5 class="card-title mb-0">Total Number Customer Breakdown with Purchased Order Count {% if data_type['user_counts_per_order_seq'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
174
|
+
</div>
|
|
175
|
+
<div class="card-body py-3" >
|
|
176
|
+
<!--<div class="chart chart-sm">
|
|
177
|
+
<canvas id="chartjs-dashboard-line"></canvas>
|
|
178
|
+
</div>
|
|
179
|
+
-->
|
|
180
|
+
<div id="order_seq_id" class="chart" style="height:300px;"></div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
<form method="POST"><div class="row">
|
|
186
|
+
<div class="col-8 col-md-8 col-xxl-6 d-flex order-3 order-xxl-2">
|
|
187
|
+
<div class="card flex-fill w-100">
|
|
188
|
+
<div class="card-header">
|
|
189
|
+
<h5 class="card-title mb-0">RFM {% if data_type['rfm'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
190
|
+
</div>
|
|
191
|
+
<div class="card-body px-5" style="height:650px;">
|
|
192
|
+
<div id="rfm_values" ></div>
|
|
193
|
+
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
<div class="col-8 col-md-8 col-xxl-6 d-flex order-3 order-xxl-2">
|
|
199
|
+
<div class="card flex-fill w-100">
|
|
200
|
+
<div class="card-header">
|
|
201
|
+
<h5 class="card-title mb-0">CLV Prediction - Daily {% if data_type['daily_clv'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="card-body px-5" style="height:650px;">
|
|
204
|
+
<div id="clv_id" ></div>
|
|
205
|
+
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
210
|
+
</div></form>
|
|
211
|
+
|
|
212
|
+
<div class="row">
|
|
213
|
+
<div class="col-12 col-lg-8 col-xxl-6 d-flex">
|
|
214
|
+
<div class="card flex-fill">
|
|
215
|
+
<div class="card-header">
|
|
216
|
+
<h5 class="card-title mb-0">Download to First Order Cohorts {% if data_type['weekly_cohort_downloads'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<div class="card-body" >
|
|
220
|
+
<div id="w_c_d_id" class="chart" style="height:300px;"></div>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="col-12 col-lg-4 col-xxl-6 d-flex">
|
|
226
|
+
<div class="card flex-fill w-100">
|
|
227
|
+
<div class="card-header">
|
|
228
|
+
|
|
229
|
+
<h5 class="card-title mb-0">Daily Funnel {% if data_type['daily_funnel'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
230
|
+
</div>
|
|
231
|
+
<div class="card-body" >
|
|
232
|
+
<div id="d_funnel_id" class="chart" style="height:300px;"></div>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
</div>
|
|
239
|
+
</form>
|
|
240
|
+
|
|
241
|
+
</main>
|
|
242
|
+
|
|
243
|
+
{% endblock content %}
|
|
244
|
+
<!-- Specific Page JS goes HERE -->
|
|
245
|
+
{% block javascripts %}
|
|
246
|
+
<script>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
var rfm = {{rfm | safe}};
|
|
250
|
+
|
|
251
|
+
Plotly.plot('rfm_values', // the ID of the div, created above
|
|
252
|
+
rfm.trace,
|
|
253
|
+
rfm.layout, {});
|
|
254
|
+
|
|
255
|
+
var order_seq = {{uoc_order_seq | safe}};
|
|
256
|
+
|
|
257
|
+
Plotly.plot('order_seq_id', // the ID of the div, created above
|
|
258
|
+
order_seq.trace,
|
|
259
|
+
order_seq.layout, {});
|
|
260
|
+
|
|
261
|
+
var pa_distribution = {{purchase_amount_distribution | safe}};
|
|
262
|
+
|
|
263
|
+
Plotly.plot('pa_distribution_id', // the ID of the div, created above
|
|
264
|
+
pa_distribution.trace,
|
|
265
|
+
pa_distribution.layout, {});
|
|
266
|
+
|
|
267
|
+
var d_funnel = {{daily_funnel | safe}};
|
|
268
|
+
|
|
269
|
+
Plotly.plot('d_funnel_id', // the ID of the div, created above
|
|
270
|
+
d_funnel.trace, d_funnel.layout, {});
|
|
271
|
+
|
|
272
|
+
var w_c_d = {{weekly_cohort_downloads | safe}};
|
|
273
|
+
|
|
274
|
+
Plotly.plot('w_c_d_id', // the ID of the div, created above
|
|
275
|
+
w_c_d.trace, w_c_d.layout, {});
|
|
276
|
+
|
|
277
|
+
var clv = {{daily_clv | safe}};
|
|
278
|
+
|
|
279
|
+
Plotly.plot('clv_id', // the ID of the div, created above
|
|
280
|
+
clv.trace, clv.layout, {});
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
298
|
+
var ctx = document.getElementById("chartjs-dashboard-line").getContext("2d");
|
|
299
|
+
var gradient = ctx.createLinearGradient(0, 0, 0, 225);
|
|
300
|
+
gradient.addColorStop(0, "rgba(215, 227, 244, 1)");
|
|
301
|
+
gradient.addColorStop(1, "rgba(215, 227, 244, 0)");
|
|
302
|
+
// Line chart
|
|
303
|
+
new Chart(document.getElementById("chartjs-dashboard-line"), {
|
|
304
|
+
type: "line",
|
|
305
|
+
data: {
|
|
306
|
+
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
|
307
|
+
datasets: [{
|
|
308
|
+
label: "Sales ($)",
|
|
309
|
+
fill: true,
|
|
310
|
+
backgroundColor: gradient,
|
|
311
|
+
borderColor: window.theme.primary,
|
|
312
|
+
data: [
|
|
313
|
+
2115,
|
|
314
|
+
1562,
|
|
315
|
+
1584,
|
|
316
|
+
1892,
|
|
317
|
+
1587,
|
|
318
|
+
1923,
|
|
319
|
+
2566,
|
|
320
|
+
2448,
|
|
321
|
+
2805,
|
|
322
|
+
3438,
|
|
323
|
+
2917,
|
|
324
|
+
3327
|
|
325
|
+
]
|
|
326
|
+
}]
|
|
327
|
+
},
|
|
328
|
+
options: {
|
|
329
|
+
maintainAspectRatio: false,
|
|
330
|
+
legend: {
|
|
331
|
+
display: false
|
|
332
|
+
},
|
|
333
|
+
tooltips: {
|
|
334
|
+
intersect: false
|
|
335
|
+
},
|
|
336
|
+
hover: {
|
|
337
|
+
intersect: true
|
|
338
|
+
},
|
|
339
|
+
plugins: {
|
|
340
|
+
filler: {
|
|
341
|
+
propagate: false
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
scales: {
|
|
345
|
+
xAxes: [{
|
|
346
|
+
reverse: true,
|
|
347
|
+
gridLines: {
|
|
348
|
+
color: "rgba(0,0,0,0.0)"
|
|
349
|
+
}
|
|
350
|
+
}],
|
|
351
|
+
yAxes: [{
|
|
352
|
+
ticks: {
|
|
353
|
+
stepSize: 1000
|
|
354
|
+
},
|
|
355
|
+
display: true,
|
|
356
|
+
borderDash: [3, 3],
|
|
357
|
+
gridLines: {
|
|
358
|
+
color: "rgba(0,0,0,0.0)"
|
|
359
|
+
}
|
|
360
|
+
}]
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
});
|
|
365
|
+
</script>
|
|
366
|
+
<script>
|
|
367
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
368
|
+
// Pie chart
|
|
369
|
+
new Chart(document.getElementById("chartjs-dashboard-pie"), {
|
|
370
|
+
type: "pie",
|
|
371
|
+
data: {
|
|
372
|
+
labels: ["Chrome", "Firefox", "IE"],
|
|
373
|
+
datasets: [{
|
|
374
|
+
data: [4306, 3801, 1689],
|
|
375
|
+
backgroundColor: [
|
|
376
|
+
window.theme.primary,
|
|
377
|
+
window.theme.warning,
|
|
378
|
+
window.theme.danger
|
|
379
|
+
],
|
|
380
|
+
borderWidth: 5
|
|
381
|
+
}]
|
|
382
|
+
},
|
|
383
|
+
options: {
|
|
384
|
+
responsive: !window.MSInputMethodContext,
|
|
385
|
+
maintainAspectRatio: false,
|
|
386
|
+
legend: {
|
|
387
|
+
display: false
|
|
388
|
+
},
|
|
389
|
+
cutoutPercentage: 75
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
});
|
|
393
|
+
</script>
|
|
394
|
+
<script>
|
|
395
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
396
|
+
// Bar chart
|
|
397
|
+
new Chart(document.getElementById("chartjs-dashboard-bar"), {
|
|
398
|
+
type: "bar",
|
|
399
|
+
data: {
|
|
400
|
+
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
|
401
|
+
datasets: [{
|
|
402
|
+
label: "This year",
|
|
403
|
+
backgroundColor: window.theme.primary,
|
|
404
|
+
borderColor: window.theme.primary,
|
|
405
|
+
hoverBackgroundColor: window.theme.primary,
|
|
406
|
+
hoverBorderColor: window.theme.primary,
|
|
407
|
+
data: [54, 67, 41, 55, 62, 45, 55, 73, 60, 76, 48, 79],
|
|
408
|
+
barPercentage: .75,
|
|
409
|
+
categoryPercentage: .5
|
|
410
|
+
}]
|
|
411
|
+
},
|
|
412
|
+
options: {
|
|
413
|
+
maintainAspectRatio: false,
|
|
414
|
+
legend: {
|
|
415
|
+
display: false
|
|
416
|
+
},
|
|
417
|
+
scales: {
|
|
418
|
+
yAxes: [{
|
|
419
|
+
gridLines: {
|
|
420
|
+
display: false
|
|
421
|
+
},
|
|
422
|
+
stacked: false,
|
|
423
|
+
ticks: {
|
|
424
|
+
stepSize: 20
|
|
425
|
+
}
|
|
426
|
+
}],
|
|
427
|
+
xAxes: [{
|
|
428
|
+
stacked: false,
|
|
429
|
+
gridLines: {
|
|
430
|
+
color: "transparent"
|
|
431
|
+
}
|
|
432
|
+
}]
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
</script>
|
|
438
|
+
<script>
|
|
439
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
440
|
+
var markers = [{
|
|
441
|
+
coords: [31.230391, 121.473701],
|
|
442
|
+
name: "Shanghai"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
coords: [28.704060, 77.102493],
|
|
446
|
+
name: "Delhi"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
coords: [6.524379, 3.379206],
|
|
450
|
+
name: "Lagos"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
coords: [35.689487, 139.691711],
|
|
454
|
+
name: "Tokyo"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
coords: [23.129110, 113.264381],
|
|
458
|
+
name: "Guangzhou"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
coords: [40.7127837, -74.0059413],
|
|
462
|
+
name: "New York"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
coords: [34.052235, -118.243683],
|
|
466
|
+
name: "Los Angeles"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
coords: [41.878113, -87.629799],
|
|
470
|
+
name: "Chicago"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
coords: [51.507351, -0.127758],
|
|
474
|
+
name: "London"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
coords: [40.416775, -3.703790],
|
|
478
|
+
name: "Madrid "
|
|
479
|
+
}
|
|
480
|
+
];
|
|
481
|
+
var map = new JsVectorMap({
|
|
482
|
+
map: "world",
|
|
483
|
+
selector: "#world_map",
|
|
484
|
+
zoomButtons: true,
|
|
485
|
+
markers: markers,
|
|
486
|
+
markerStyle: {
|
|
487
|
+
initial: {
|
|
488
|
+
r: 9,
|
|
489
|
+
strokeWidth: 7,
|
|
490
|
+
stokeOpacity: .4,
|
|
491
|
+
fill: window.theme.primary
|
|
492
|
+
},
|
|
493
|
+
hover: {
|
|
494
|
+
fill: window.theme.primary,
|
|
495
|
+
stroke: window.theme.primary
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
window.addEventListener("resize", () => {
|
|
500
|
+
map.updateSize();
|
|
501
|
+
});
|
|
502
|
+
});
|
|
503
|
+
</script>
|
|
504
|
+
<script>
|
|
505
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
506
|
+
document.getElementById("datetimepicker-dashboard").flatpickr({
|
|
507
|
+
inline: true,
|
|
508
|
+
|
|
509
|
+
prevArrow: "<span class=\"fas fa-chevron-left\" title=\"Previous month\"></span>",
|
|
510
|
+
nextArrow: "<span class=\"fas fa-chevron-right\" title=\"Next month\"></span>",
|
|
511
|
+
});
|
|
512
|
+
});
|
|
513
|
+
</script>
|
|
514
|
+
|
|
515
|
+
{% endblock javascripts %}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{% extends "layouts/base-fullscreen.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Error 403 {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<!-- Section -->
|
|
11
|
+
<main class="d-flex w-100">
|
|
12
|
+
<div class="container d-flex flex-column">
|
|
13
|
+
<div class="row vh-100">
|
|
14
|
+
<div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
|
|
15
|
+
<div class="d-table-cell align-middle">
|
|
16
|
+
|
|
17
|
+
<div class="text-center mt-4">
|
|
18
|
+
<h1 class="h2">
|
|
19
|
+
Error 403
|
|
20
|
+
</h1>
|
|
21
|
+
<p class="lead">
|
|
22
|
+
Access denied - please contact support or authenticate.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="card">
|
|
27
|
+
<div class="card-body">
|
|
28
|
+
<div class="text-center mt-3">
|
|
29
|
+
<a href="{{ url_for('base_blueprint.login') }}"
|
|
30
|
+
class="btn btn-lg btn-primary">LOGIN</a>
|
|
31
|
+
<!-- <button type="submit" class="btn btn-lg btn-primary">Sign in</button> -->
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</main>
|
|
42
|
+
|
|
43
|
+
{% endblock content %}
|
|
44
|
+
|
|
45
|
+
<!-- Specific Page JS goes HERE -->
|
|
46
|
+
{% block javascripts %}{% endblock javascripts %}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{% extends "layouts/base-fullscreen.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Error 404 {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<!-- Section -->
|
|
11
|
+
<main class="d-flex w-100">
|
|
12
|
+
<div class="container d-flex flex-column">
|
|
13
|
+
<div class="row vh-100">
|
|
14
|
+
<div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
|
|
15
|
+
<div class="d-table-cell align-middle">
|
|
16
|
+
|
|
17
|
+
<div class="text-center mt-4">
|
|
18
|
+
<h1 class="h2">
|
|
19
|
+
Error 404
|
|
20
|
+
</h1>
|
|
21
|
+
<p class="lead">
|
|
22
|
+
Page not found
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="card">
|
|
27
|
+
<div class="card-body">
|
|
28
|
+
<div class="text-center mt-3">
|
|
29
|
+
<a href="/" class="btn btn-lg btn-primary">HOME</a>
|
|
30
|
+
<!-- <button type="submit" class="btn btn-lg btn-primary">Sign in</button> -->
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</main>
|
|
41
|
+
|
|
42
|
+
{% endblock content %}
|
|
43
|
+
|
|
44
|
+
<!-- Specific Page JS goes HERE -->
|
|
45
|
+
{% block javascripts %}{% endblock javascripts %}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{% extends "layouts/base-fullscreen.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Error 500 {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<!-- Section -->
|
|
11
|
+
<main class="d-flex w-100">
|
|
12
|
+
<div class="container d-flex flex-column">
|
|
13
|
+
<div class="row vh-100">
|
|
14
|
+
<div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
|
|
15
|
+
<div class="d-table-cell align-middle">
|
|
16
|
+
|
|
17
|
+
<div class="text-center mt-4">
|
|
18
|
+
<h1 class="h2">
|
|
19
|
+
Error 500
|
|
20
|
+
</h1>
|
|
21
|
+
<p class="lead">
|
|
22
|
+
Server error - please contact support.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="card">
|
|
27
|
+
<div class="card-body">
|
|
28
|
+
<div class="text-center mt-3">
|
|
29
|
+
<a href="/" class="btn btn-lg btn-primary">HOME</a>
|
|
30
|
+
<!-- <button type="submit" class="btn btn-lg btn-primary">Sign in</button> -->
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</main>
|
|
41
|
+
|
|
42
|
+
{% endblock content %}
|
|
43
|
+
|
|
44
|
+
<!-- Specific Page JS goes HERE -->
|
|
45
|
+
{% block javascripts %}{% endblock javascripts %}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{% extends "layouts/base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Blank Page {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<main class="content">
|
|
11
|
+
<div class="container-fluid p-0">
|
|
12
|
+
|
|
13
|
+
<h1 class="h3 mb-3">Blank Page</h1>
|
|
14
|
+
|
|
15
|
+
<div class="row">
|
|
16
|
+
<div class="col-12">
|
|
17
|
+
<div class="card">
|
|
18
|
+
<div class="card-header">
|
|
19
|
+
<h5 class="card-title mb-0">Empty card</h5>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="card-body">
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
</main>
|
|
29
|
+
|
|
30
|
+
{% endblock content %}
|
|
31
|
+
|
|
32
|
+
<!-- Specific Page JS goes HERE -->
|
|
33
|
+
{% block javascripts %}{% endblock javascripts %}
|