spree_admin_insights 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +54 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +26 -0
  5. data/README.md +96 -0
  6. data/Rakefile +21 -0
  7. data/app/assets/javascripts/spree/backend/jquery.tablesorter.min.js +4 -0
  8. data/app/assets/javascripts/spree/backend/spree_admin_insights.js +2 -0
  9. data/app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js +128 -0
  10. data/app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js +228 -0
  11. data/app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js +103 -0
  12. data/app/assets/javascripts/spree/backend/spree_admin_insights/table_sorter.js +47 -0
  13. data/app/assets/javascripts/spree/backend/tmpl.js +87 -0
  14. data/app/assets/javascripts/spree/frontend/spree_admin_insights.js +2 -0
  15. data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
  16. data/app/assets/stylesheets/spree/backend/spree_admin_insights.css +40 -0
  17. data/app/assets/stylesheets/spree/frontend/spree_admin_insights.css +4 -0
  18. data/app/controllers/spree/admin/insights_controller.rb +112 -0
  19. data/app/helpers/spree/admin/base_helper_decorator.rb +17 -0
  20. data/app/models/spree/app_configuration_decorator.rb +3 -0
  21. data/app/models/spree/product_decorator.rb +3 -0
  22. data/app/models/spree/promotion_action_decorator.rb +3 -0
  23. data/app/models/spree/return_authorization_decorator.rb +4 -0
  24. data/app/models/spree/user_decorator.rb +3 -0
  25. data/app/overrides/add_insights_to_admin_side_menu.html.rb +5 -0
  26. data/app/reports/spree/best_selling_products_report.rb +42 -0
  27. data/app/reports/spree/cart_additions_report.rb +36 -0
  28. data/app/reports/spree/cart_removals_report.rb +36 -0
  29. data/app/reports/spree/cart_updations_report.rb +40 -0
  30. data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
  31. data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
  32. data/app/reports/spree/payment_method_transactions_report.rb +60 -0
  33. data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
  34. data/app/reports/spree/product_views_report.rb +46 -0
  35. data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
  36. data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
  37. data/app/reports/spree/promotional_cost_report.rb +84 -0
  38. data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
  39. data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
  40. data/app/reports/spree/report.rb +131 -0
  41. data/app/reports/spree/report/chart.rb +11 -0
  42. data/app/reports/spree/report/configuration.rb +40 -0
  43. data/app/reports/spree/report/date_slicer.rb +61 -0
  44. data/app/reports/spree/report/observation.rb +49 -0
  45. data/app/reports/spree/report/query_fragments.rb +45 -0
  46. data/app/reports/spree/report/query_time_scale.rb +19 -0
  47. data/app/reports/spree/report/result.rb +100 -0
  48. data/app/reports/spree/report/timed_observation.rb +47 -0
  49. data/app/reports/spree/report/timed_result.rb +48 -0
  50. data/app/reports/spree/returned_products_report.rb +37 -0
  51. data/app/reports/spree/sales_performance_report.rb +107 -0
  52. data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
  53. data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
  54. data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
  55. data/app/reports/spree/sales_tax_report.rb +64 -0
  56. data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
  57. data/app/reports/spree/shipping_cost_report.rb +89 -0
  58. data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
  59. data/app/reports/spree/trending_search_report.rb +50 -0
  60. data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
  61. data/app/reports/spree/unique_purchases_report.rb +39 -0
  62. data/app/reports/spree/user_pool_report.rb +66 -0
  63. data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
  64. data/app/reports/spree/users_not_converted_report.rb +48 -0
  65. data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
  66. data/app/services/spree/report_generation_service.rb +27 -0
  67. data/app/views/spree/admin/insights/_chart.html.erb +4 -0
  68. data/app/views/spree/admin/insights/download.pdf.erb +27 -0
  69. data/app/views/spree/admin/insights/index.html.erb +91 -0
  70. data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
  71. data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
  72. data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
  73. data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
  74. data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
  75. data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
  76. data/app/views/spree/admin/shared/_insights_side_menu.html.erb +16 -0
  77. data/app/views/spree/admin/templates/insights/_paginator.template +9 -0
  78. data/app/views/spree/admin/templates/insights/_search.template +75 -0
  79. data/app/views/spree/admin/templates/insights/_show.template +48 -0
  80. data/app/views/spree/layouts/pdf.html.erb +9 -0
  81. data/bin/rails +7 -0
  82. data/config/initializers/assets.rb +1 -0
  83. data/config/initializers/mime_types.rb +2 -0
  84. data/config/initializers/wicked_pdf.rb +21 -0
  85. data/config/locales/en.yml +169 -0
  86. data/config/locales/pl.yml +164 -0
  87. data/config/routes.rb +6 -0
  88. data/lib/generators/spree_admin_insights/install/install_generator.rb +35 -0
  89. data/lib/generators/spree_admin_insights/install/spree_admin_insights.rb +22 -0
  90. data/lib/spree_admin_insights.rb +14 -0
  91. data/lib/spree_admin_insights/engine.rb +26 -0
  92. data/lib/spree_admin_insights/factories.rb +6 -0
  93. data/spec/spec_helper.rb +93 -0
  94. data/spree_admin_insights.gemspec +41 -0
  95. metadata +420 -0
@@ -0,0 +1,164 @@
1
+ pl:
2
+ spree:
3
+ finance_analysis: Analiza finansowa
4
+ product_analysis: Analiza produktowa
5
+ promotion_analysis: Analiza promocji
6
+ trending_search_analysis: Analiza wyszukiwania
7
+ user_analysis: Analiza użytkowników
8
+ user_pool:
9
+ new_sign_ups: Nowi użytkownicy
10
+ active_users: Zarejestrowani użytkownicy
11
+ guest_users: Goście
12
+ insights: Analityka
13
+ insight:
14
+ heading: 'Analiza: %{type}'
15
+ tab_heading: Analityka
16
+ not_found: Nie znaleziono raportu.
17
+ product_views:
18
+ title: Wyświetlenia produktu
19
+ description: Pokazuje liczbę wyświetleń produktu (strony produktu) przez klientów.
20
+ product_name: Produkt
21
+ views: Suma wyświetleń
22
+ users: Użytkownicy (Unikalni)
23
+ guest_sessions: Sesje gości
24
+ cart_additions:
25
+ title: Dodanie produktu do koszyka
26
+ additions: Dodatki
27
+ description: Wyświetla informację o tym jak wiele razy produkt został dodany do koszyka.
28
+ product_name: Produkt
29
+ quantity_change: Dodanie do koszyka (Liczba)
30
+ sku: Wariant
31
+ cart_removals:
32
+ title: Usunięcie produktu z koszyka
33
+ description: Wyświetla informację o tym jak wiele razy produkt został usunięty z koszyka.
34
+ product_name: Produkt
35
+ quantity_change: Usunięcie z koszyka (Liczba)
36
+ removals: Usunięcia
37
+ sku: Wariant
38
+ cart_updations:
39
+ title: Aktualizacja produktu
40
+ description: Wyświetla informację o tym jak wiele razy produkt został zaktualizowany z poziomu koszyka.
41
+ product_name: Produkt
42
+ quantity_decrease: Zmniejszenie liczby (Z koszyka)
43
+ quantity_increase: Zwiększenie liczby (Z koszyka)
44
+ removals: Usunięcie (Z koszyka)
45
+ sku: Wariant
46
+ updations: Suma aktualizacji
47
+ product_views_to_cart_additions:
48
+ title: Stosunek liczby wyświetleń produktu do liczby dodań do koszyka
49
+ description: Stosunek liczby wyświetleń produktu (strony produktu) do liczby dodań do koszyka tego produktu.
50
+ cart_additions: Konwersja (liczba produktu)
51
+ product_name: Produkt
52
+ views: Wyświetlenia produktu
53
+ cart_to_view_ratio: Stosunek dodań do koszyka
54
+ trending_search:
55
+ title: Wyszukiwania
56
+ description: Możesz zobacz jakie słowa kluczowe wpisują Twoi klienci w wyszukiwarkę.
57
+ searched_term: Słowa kluczowe
58
+ occurrences: Występowanie
59
+ users_not_converted:
60
+ title: Użytkownicy nieskonwertowani
61
+ description: Informacja o zarejestrowanych użytkownikach, którzy nie zakupili żadnego produktu.
62
+ signup_date: Zarejestrowany o
63
+ user_email: E-mail
64
+ users_who_recently_purchased:
65
+ title: Użytkownicy, którzy ostatnio dokonali zakupu
66
+ description: Liczba użytkowników, którzy ostatnio dokonali zakupu.
67
+ last_purchase_date: Czas ostatniego zakupu
68
+ last_purchased_order_number: Numer ostatniego zamówienia
69
+ purchase_count: Liczba dokonanych zakupów
70
+ user_email: E-mail
71
+ users_who_have_not_recently_purchased:
72
+ title: Użytkownicy, którzy nie dokonali ostatnio zakupów
73
+ description: Liczba użytkowników, którzy nie dokonali zakupów od dłuższego czasu
74
+ last_purchase_date: Czas ostatniego zakupu
75
+ last_purchased_order_number: Numer ostatniego zamówienia
76
+ user_email: E-mail
77
+ user_pool:
78
+ title: Pula użytkowników
79
+ description: Wyświetla miesięczną statystyke o użytkownikach odwiedzających stronę.
80
+ months_name: Miesiąc
81
+ guest_users: Goście
82
+ active_users: Zarejestrowani użytkownicy
83
+ new_sign_ups: Nowi użytkownicy
84
+ payment_method_transactions:
85
+ title: Liczba transakcji
86
+ description: Transakcje pochodzące z różnych metod płatności.
87
+ payment_method_name: Metoda płatności
88
+ payment_amount: Kwota transakcji
89
+ months_name: Miesiąc
90
+ payment_method_transactions_conversion_rate:
91
+ payment_method_name: Metoda płatności
92
+ title: Konwersja metod płatności
93
+ description: Stosunek transakcji zakończonych sukcesem do tych zakończonych niepowodzeniem.
94
+ months_name: Miesiąc
95
+ payment_state: Stan płatności
96
+ count: Liczba
97
+ promotional_cost:
98
+ title: Koszt promocyjny
99
+ description: Suma pieniędzy przeznaczonych na poszczególne promocje - Admin może zobaczyć sumę zainwestowanych pieniędzy, dochód i zysk z poszczególnej promocji.
100
+ promotion_code: Kod
101
+ promotion_discount: Zniżka
102
+ promotion_name: Promocja
103
+ promotion_start_date: Czas rozpoczęcia
104
+ promotion_end_date: Czas wygaśnięcia
105
+ usage_count: Wykorzystanie
106
+ months_name: Miesiąc
107
+ annual_promotional_cost:
108
+ title: Roczny koszt promocji
109
+ description: Całkowita suma pieniędzy zainwestowanych w poszczególne promocje - Admin może zobaczyć sumę zainwestowanych pieniędzy, dochód i zysk z poszczególnej promocji.
110
+ promotion_discount: Zniżka
111
+ promotion_name: Promocja
112
+ usage_count: Wykorzystanie
113
+ sales_performance:
114
+ title: Wyniki sprzedaży
115
+ description: Informacje o dochodach, podatkach, przesyłkach i zwrotach.
116
+ adjustment_total: Suma poprawek
117
+ cost_price: Cena kosztu
118
+ months_name: Miesiąc
119
+ profit_loss: Zysk/Strata
120
+ profit_loss_percent: Zysk/Strata %
121
+ refund_amount: Kwota zwrotu
122
+ revenue: Dochód
123
+ sale_price: Cena wyprzedażowa
124
+ shipping_charges: Koszty wysyłki
125
+ tax: Podatek
126
+ promotion_discount: Promocyjna zniżka
127
+ unique_purchases:
128
+ title: Unikalne zakupy
129
+ description: Wyświetla informację o tym jak wiele unikalnych użytkowników kupiło poszczególne produkty.
130
+ product_name: Produkt
131
+ sku: Wariant
132
+ sold_count: Liczba sprzedanych
133
+ users: Użytkownicy
134
+ best_selling_products:
135
+ title: Najlepiej sprzedające się produkty
136
+ description: Najlepiej/najmniej Sprzedające się produkty w maksymalnych zakupionych ilościach.
137
+ product_name: Produkt
138
+ sku: Wariant
139
+ sold_count: Liczba sprzedanych
140
+ product_views_to_purchases:
141
+ title: Stosunek wyświetleń produktu do sprzedanych
142
+ description: Stosunek liczby wyświetleń produktu (strony produktu) do liczby z jaką ten produkt został zakupiony po zobaczeniu.
143
+ product_name: Produkt
144
+ purchases: Zakupione
145
+ views: Wyświetlenia
146
+ purchase_to_view_ratio: Stosunek zakupionych do wyświetlonych
147
+ returned_products:
148
+ title: Zwrócone produkty
149
+ description: Liczba produktów zwróconych.
150
+ product_name: Produkt
151
+ return_count: Liczba zwróconych
152
+ sku: Wariant
153
+ shipping_cost:
154
+ title: Koszty wysyłki
155
+ name: Nazwa metody wysyłki
156
+ months_name: Miesiąc
157
+ shipping_charge: Koszty wysyłki
158
+ revenue: Dochód
159
+ shipping_cost_percentage: Koszt wysyłki w %
160
+ sales_tax:
161
+ title: Podatek od sprzedaży
162
+ months_name: Miesiac
163
+ zone_name: Strefa
164
+ sales_tax: Podatek
@@ -0,0 +1,6 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :admin do
3
+ get 'insights/download', to: 'insights#download'
4
+ resources :insights
5
+ end
6
+ end
@@ -0,0 +1,35 @@
1
+ module SpreeAdminInsights
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root(File.expand_path(File.dirname(__FILE__)))
5
+ class_option :auto_run_migrations, :type => :boolean, :default => false
6
+
7
+ def copy_initializer
8
+ copy_file 'spree_admin_insights.rb', 'config/initializers/spree_admin_insights.rb'
9
+ end
10
+
11
+ def add_javascripts
12
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_admin_insights\n"
13
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_admin_insights\n"
14
+ end
15
+
16
+ def add_stylesheets
17
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_admin_insights\n", :before => /\*\//, :verbose => true
18
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_admin_insights\n", :before => /\*\//, :verbose => true
19
+ end
20
+
21
+ def add_migrations
22
+ run 'bundle exec rake railties:install:migrations FROM=spree_admin_insights'
23
+ end
24
+
25
+ def run_migrations
26
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
27
+ if run_migrations
28
+ run 'bundle exec rake db:migrate'
29
+ else
30
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,22 @@
1
+ reports = {
2
+ finance_analysis: [
3
+ :payment_method_transactions, :payment_method_transactions_conversion_rate,
4
+ :shipping_cost, :sales_tax, :sales_performance
5
+ ],
6
+ product_analysis: [
7
+ :best_selling_products, :cart_additions, :cart_removals, :cart_updations,
8
+ :product_views, :product_views_to_cart_additions,
9
+ :product_views_to_purchases, :unique_purchases,
10
+ :returned_products
11
+ ],
12
+ promotion_analysis: [:promotional_cost],
13
+ trending_search_analysis: [:trending_search],
14
+ user_analysis: [:user_pool, :users_not_converted, :users_who_recently_purchased],
15
+ }
16
+
17
+ SpreeAdminInsights::Config.configure do |config|
18
+ reports.keys.each do |report_category|
19
+ config.register_report_category(report_category)
20
+ reports[report_category].each { |report| config.register_report(report_category, report) }
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ require 'spree_core'
2
+ require 'spree_admin_insights/engine'
3
+
4
+ module SpreeAdminInsights
5
+ class Config
6
+ def self.configure
7
+ yield configuration if block_given?
8
+ end
9
+
10
+ def self.configuration
11
+ @config ||= Spree::Report::Configuration.new
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ module SpreeAdminInsights
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ require 'wicked_pdf'
5
+ require 'csv'
6
+
7
+ isolate_namespace Spree
8
+ engine_name 'spree_admin_insights'
9
+
10
+ # use rspec for tests
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
15
+ def self.activate
16
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
17
+ Rails.configuration.cache_classes ? require(c) : load(c)
18
+ end
19
+ end
20
+
21
+ config.to_prepare &method(:activate).to_proc
22
+
23
+ config.after_initialize do
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'spree_admin_insights/factories'
6
+ end
@@ -0,0 +1,93 @@
1
+ # Run Coverage report
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec/dummy'
5
+ add_group 'Controllers', 'app/controllers'
6
+ add_group 'Helpers', 'app/helpers'
7
+ add_group 'Mailers', 'app/mailers'
8
+ add_group 'Models', 'app/models'
9
+ add_group 'Views', 'app/views'
10
+ add_group 'Libraries', 'lib'
11
+ end
12
+
13
+ # Configure Rails Environment
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
+
18
+ require 'rspec/rails'
19
+ require 'database_cleaner'
20
+ require 'ffaker'
21
+
22
+ # Requires supporting ruby files with custom matchers and macros, etc,
23
+ # in spec/support/ and its subdirectories.
24
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
25
+
26
+ # Requires factories and other useful helpers defined in spree_core.
27
+ require 'spree/testing_support/authorization_helpers'
28
+ require 'spree/testing_support/capybara_ext'
29
+ require 'spree/testing_support/controller_requests'
30
+ require 'spree/testing_support/factories'
31
+ require 'spree/testing_support/url_helpers'
32
+
33
+ # Requires factories defined in lib/spree_admin_insights/factories.rb
34
+ require 'spree_admin_insights/factories'
35
+
36
+ RSpec.configure do |config|
37
+ config.include FactoryGirl::Syntax::Methods
38
+
39
+ # Infer an example group's spec type from the file location.
40
+ config.infer_spec_type_from_file_location!
41
+
42
+ # == URL Helpers
43
+ #
44
+ # Allows access to Spree's routes in specs:
45
+ #
46
+ # visit spree.admin_path
47
+ # current_path.should eql(spree.products_path)
48
+ config.include Spree::TestingSupport::UrlHelpers
49
+
50
+ # == Requests support
51
+ #
52
+ # Adds convenient methods to request Spree's controllers
53
+ # spree_get :index
54
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
55
+
56
+ # == Mock Framework
57
+ #
58
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
59
+ #
60
+ # config.mock_with :mocha
61
+ # config.mock_with :flexmock
62
+ # config.mock_with :rr
63
+ config.mock_with :rspec
64
+ config.color = true
65
+
66
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
67
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
68
+
69
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
70
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
71
+ # to setup a test will be unavailable to the browser, which runs under a separate server instance.
72
+ config.use_transactional_fixtures = false
73
+
74
+ # Ensure Suite is set to use transactions for speed.
75
+ config.before :suite do
76
+ DatabaseCleaner.strategy = :transaction
77
+ DatabaseCleaner.clean_with :truncation
78
+ end
79
+
80
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
81
+ config.before :each do
82
+ DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
83
+ DatabaseCleaner.start
84
+ end
85
+
86
+ # After each spec clean the database.
87
+ config.after :each do
88
+ DatabaseCleaner.clean
89
+ end
90
+
91
+ config.fail_fast = ENV['FAIL_FAST'] || false
92
+ config.order = "random"
93
+ end
@@ -0,0 +1,41 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = 'spree_admin_insights'
4
+ s.version = '3.2.0'
5
+ s.summary = 'Add some reporting to admin section. '
6
+ s.description = 'Track what product being viewed, what being purchased. Who are consistant buyers etc.'
7
+ s.required_ruby_version = '>= 2.1.0'
8
+
9
+ s.author = ['Nimish Mehta', 'Tanmay Sinha', 'Nimish Gupta', '+ Vinsol Team']
10
+ s.email = 'info@vinsol.com'
11
+ s.homepage = 'http://vinsol.com/spreecommerce-admin-insights'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.require_path = 'lib'
16
+ s.requirements << 'none'
17
+
18
+ spree_version = '~> 3.2.0'
19
+
20
+ s.add_dependency 'spree_core', spree_version
21
+ s.add_dependency 'spree_events_tracker', '~> 3.2'
22
+
23
+ s.add_development_dependency 'capybara', '~> 2.4'
24
+ s.add_development_dependency 'coffee-rails', '>= 4.0.0'
25
+ s.add_development_dependency 'database_cleaner', '~> 1.2.0'
26
+ s.add_development_dependency 'factory_girl', '~> 4.5'
27
+ s.add_development_dependency 'ffaker', '~> 2.2.0'
28
+ s.add_development_dependency 'mysql2', '~> 0.4.0'
29
+ s.add_development_dependency 'pg', '~> 0.18.0'
30
+ s.add_development_dependency 'rspec-rails', '~> 3.1'
31
+ s.add_development_dependency 'sass-rails', '~> 5.0.0'
32
+ s.add_development_dependency 'chartkick', '~> 1.4.0'
33
+ s.add_development_dependency 'selenium-webdriver', '~> 2.52.0'
34
+ s.add_development_dependency 'simplecov', '~> 0.11.0'
35
+ s.add_development_dependency 'sqlite3', '~> 1.3.0'
36
+ s.add_development_dependency 'shoulda-matchers', '~> 2.6.2'
37
+ s.add_development_dependency 'spree_backend', spree_version
38
+ s.add_development_dependency 'spree_frontend', spree_version
39
+ s.add_dependency 'wicked_pdf', '~> 1.0.6'
40
+ s.add_dependency 'wkhtmltopdf-binary', '~> 0.9.9.3'
41
+ end
metadata ADDED
@@ -0,0 +1,420 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_admin_insights
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Nimish Mehta
8
+ - Tanmay Sinha
9
+ - Nimish Gupta
10
+ - "+ Vinsol Team"
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2017-05-18 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: spree_core
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: spree_events_tracker
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '3.2'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.2'
44
+ - !ruby/object:Gem::Dependency
45
+ name: capybara
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.4'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '2.4'
58
+ - !ruby/object:Gem::Dependency
59
+ name: coffee-rails
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 4.0.0
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 4.0.0
72
+ - !ruby/object:Gem::Dependency
73
+ name: database_cleaner
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: 1.2.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: 1.2.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: factory_girl
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '4.5'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '4.5'
100
+ - !ruby/object:Gem::Dependency
101
+ name: ffaker
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 2.2.0
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 2.2.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: mysql2
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.4.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.4.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: pg
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.18.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 0.18.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: rspec-rails
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '3.1'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '3.1'
156
+ - !ruby/object:Gem::Dependency
157
+ name: sass-rails
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: 5.0.0
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 5.0.0
170
+ - !ruby/object:Gem::Dependency
171
+ name: chartkick
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: 1.4.0
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: 1.4.0
184
+ - !ruby/object:Gem::Dependency
185
+ name: selenium-webdriver
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: 2.52.0
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: 2.52.0
198
+ - !ruby/object:Gem::Dependency
199
+ name: simplecov
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: 0.11.0
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: 0.11.0
212
+ - !ruby/object:Gem::Dependency
213
+ name: sqlite3
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: 1.3.0
219
+ type: :development
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: 1.3.0
226
+ - !ruby/object:Gem::Dependency
227
+ name: shoulda-matchers
228
+ requirement: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: 2.6.2
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: 2.6.2
240
+ - !ruby/object:Gem::Dependency
241
+ name: spree_backend
242
+ requirement: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - "~>"
245
+ - !ruby/object:Gem::Version
246
+ version: 3.2.0
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - "~>"
252
+ - !ruby/object:Gem::Version
253
+ version: 3.2.0
254
+ - !ruby/object:Gem::Dependency
255
+ name: spree_frontend
256
+ requirement: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: 3.2.0
261
+ type: :development
262
+ prerelease: false
263
+ version_requirements: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - "~>"
266
+ - !ruby/object:Gem::Version
267
+ version: 3.2.0
268
+ - !ruby/object:Gem::Dependency
269
+ name: wicked_pdf
270
+ requirement: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - "~>"
273
+ - !ruby/object:Gem::Version
274
+ version: 1.0.6
275
+ type: :runtime
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - "~>"
280
+ - !ruby/object:Gem::Version
281
+ version: 1.0.6
282
+ - !ruby/object:Gem::Dependency
283
+ name: wkhtmltopdf-binary
284
+ requirement: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - "~>"
287
+ - !ruby/object:Gem::Version
288
+ version: 0.9.9.3
289
+ type: :runtime
290
+ prerelease: false
291
+ version_requirements: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - "~>"
294
+ - !ruby/object:Gem::Version
295
+ version: 0.9.9.3
296
+ description: Track what product being viewed, what being purchased. Who are consistant
297
+ buyers etc.
298
+ email: info@vinsol.com
299
+ executables: []
300
+ extensions: []
301
+ extra_rdoc_files: []
302
+ files:
303
+ - ".gitignore"
304
+ - Gemfile
305
+ - LICENSE
306
+ - README.md
307
+ - Rakefile
308
+ - app/assets/javascripts/spree/backend/jquery.tablesorter.min.js
309
+ - app/assets/javascripts/spree/backend/spree_admin_insights.js
310
+ - app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js
311
+ - app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js
312
+ - app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js
313
+ - app/assets/javascripts/spree/backend/spree_admin_insights/table_sorter.js
314
+ - app/assets/javascripts/spree/backend/tmpl.js
315
+ - app/assets/javascripts/spree/frontend/spree_admin_insights.js
316
+ - app/assets/stylesheets/spree/backend/override_pdf.css
317
+ - app/assets/stylesheets/spree/backend/spree_admin_insights.css
318
+ - app/assets/stylesheets/spree/frontend/spree_admin_insights.css
319
+ - app/controllers/spree/admin/insights_controller.rb
320
+ - app/helpers/spree/admin/base_helper_decorator.rb
321
+ - app/models/spree/app_configuration_decorator.rb
322
+ - app/models/spree/product_decorator.rb
323
+ - app/models/spree/promotion_action_decorator.rb
324
+ - app/models/spree/return_authorization_decorator.rb
325
+ - app/models/spree/user_decorator.rb
326
+ - app/overrides/add_insights_to_admin_side_menu.html.rb
327
+ - app/reports/spree/best_selling_products_report.rb
328
+ - app/reports/spree/cart_additions_report.rb
329
+ - app/reports/spree/cart_removals_report.rb
330
+ - app/reports/spree/cart_updations_report.rb
331
+ - app/reports/spree/payment_method_transactions_conversion_rate_report.rb
332
+ - app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb
333
+ - app/reports/spree/payment_method_transactions_report.rb
334
+ - app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb
335
+ - app/reports/spree/product_views_report.rb
336
+ - app/reports/spree/product_views_to_cart_additions_report.rb
337
+ - app/reports/spree/product_views_to_purchases_report.rb
338
+ - app/reports/spree/promotional_cost_report.rb
339
+ - app/reports/spree/promotional_cost_report/promotional_cost_chart.rb
340
+ - app/reports/spree/promotional_cost_report/usage_count_chart.rb
341
+ - app/reports/spree/report.rb
342
+ - app/reports/spree/report/chart.rb
343
+ - app/reports/spree/report/configuration.rb
344
+ - app/reports/spree/report/date_slicer.rb
345
+ - app/reports/spree/report/observation.rb
346
+ - app/reports/spree/report/query_fragments.rb
347
+ - app/reports/spree/report/query_time_scale.rb
348
+ - app/reports/spree/report/result.rb
349
+ - app/reports/spree/report/timed_observation.rb
350
+ - app/reports/spree/report/timed_result.rb
351
+ - app/reports/spree/returned_products_report.rb
352
+ - app/reports/spree/sales_performance_report.rb
353
+ - app/reports/spree/sales_performance_report/profit_loss_chart.rb
354
+ - app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb
355
+ - app/reports/spree/sales_performance_report/sale_cost_price_chart.rb
356
+ - app/reports/spree/sales_tax_report.rb
357
+ - app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb
358
+ - app/reports/spree/shipping_cost_report.rb
359
+ - app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb
360
+ - app/reports/spree/trending_search_report.rb
361
+ - app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb
362
+ - app/reports/spree/unique_purchases_report.rb
363
+ - app/reports/spree/user_pool_report.rb
364
+ - app/reports/spree/user_pool_report/distribution_column_chart.rb
365
+ - app/reports/spree/users_not_converted_report.rb
366
+ - app/reports/spree/users_who_recently_purchased_report.rb
367
+ - app/services/spree/report_generation_service.rb
368
+ - app/views/spree/admin/insights/_chart.html.erb
369
+ - app/views/spree/admin/insights/download.pdf.erb
370
+ - app/views/spree/admin/insights/index.html.erb
371
+ - app/views/spree/admin/insights/search/_product_views_search.html.erb
372
+ - app/views/spree/admin/insights/search/_search_form.html.erb
373
+ - app/views/spree/admin/insights/search/_trending_searches_search.html.erb
374
+ - app/views/spree/admin/insights/search/_users_not_converted_search.html.erb
375
+ - app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb
376
+ - app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb
377
+ - app/views/spree/admin/shared/_insights_side_menu.html.erb
378
+ - app/views/spree/admin/templates/insights/_paginator.template
379
+ - app/views/spree/admin/templates/insights/_search.template
380
+ - app/views/spree/admin/templates/insights/_show.template
381
+ - app/views/spree/layouts/pdf.html.erb
382
+ - bin/rails
383
+ - config/initializers/assets.rb
384
+ - config/initializers/mime_types.rb
385
+ - config/initializers/wicked_pdf.rb
386
+ - config/locales/en.yml
387
+ - config/locales/pl.yml
388
+ - config/routes.rb
389
+ - lib/generators/spree_admin_insights/install/install_generator.rb
390
+ - lib/generators/spree_admin_insights/install/spree_admin_insights.rb
391
+ - lib/spree_admin_insights.rb
392
+ - lib/spree_admin_insights/engine.rb
393
+ - lib/spree_admin_insights/factories.rb
394
+ - spec/spec_helper.rb
395
+ - spree_admin_insights.gemspec
396
+ homepage: http://vinsol.com/spreecommerce-admin-insights
397
+ licenses: []
398
+ metadata: {}
399
+ post_install_message:
400
+ rdoc_options: []
401
+ require_paths:
402
+ - lib
403
+ required_ruby_version: !ruby/object:Gem::Requirement
404
+ requirements:
405
+ - - ">="
406
+ - !ruby/object:Gem::Version
407
+ version: 2.1.0
408
+ required_rubygems_version: !ruby/object:Gem::Requirement
409
+ requirements:
410
+ - - ">="
411
+ - !ruby/object:Gem::Version
412
+ version: '0'
413
+ requirements:
414
+ - none
415
+ rubyforge_project:
416
+ rubygems_version: 2.4.5.1
417
+ signing_key:
418
+ specification_version: 4
419
+ summary: Add some reporting to admin section.
420
+ test_files: []