diff --git a/ruby/lib/jam_ruby/db_util.rb b/ruby/lib/jam_ruby/db_util.rb
index fac3145fb..f3163cc9d 100644
--- a/ruby/lib/jam_ruby/db_util.rb
+++ b/ruby/lib/jam_ruby/db_util.rb
@@ -14,5 +14,13 @@ module JamRuby
end
BAD_CONN_EXCEPTIONS.include?(test_exception.class)
end
+
+ def self.migrations_path
+ if ENV['RAILS_ENV'] == 'production'
+ "/var/lib/jam-web/vendor/bundle/ruby/2.3.0/gems/jam_ruby-0.1.#{ENV['BUILD_NUMBER']}/db/migrate"
+ else
+ File.expand_path("../../../../../db/migrate", __FILE__)
+ end
+ end
end
end
\ No newline at end of file
diff --git a/ruby/lib/jam_ruby/tasks/db/migrate.rake b/ruby/lib/jam_ruby/tasks/db/migrate.rake
index 43a648521..64a179401 100644
--- a/ruby/lib/jam_ruby/tasks/db/migrate.rake
+++ b/ruby/lib/jam_ruby/tasks/db/migrate.rake
@@ -22,7 +22,7 @@ namespace :db do
end
ActiveRecord::Base.establish_connection(db_config)
- migrate_dir = File.expand_path("../../../../../db/migrate", __FILE__)
+ migrate_dir = JamRuby::DbUtil.migrations_path
ActiveRecord::Migrator.migrate(migrate_dir, version)
puts "#{ENV['RAILS_ENV']} database migrated."
end
@@ -31,7 +31,7 @@ namespace :db do
task :rollback do
steps = (ARGV[1] || "1").to_i
ActiveRecord::Base.establish_connection(db_config)
- migrate_dir = File.expand_path("../../../../../db/migrate", __FILE__)
+ migrate_dir = JamRuby::DbUtil.migrations_path
ActiveRecord::Migrator.rollback(migrate_dir, steps)
puts "#{ENV['RAILS_ENV']} database migrated."
end
diff --git a/web/app/views/users/_user_dropdown.html.erb b/web/app/views/users/_user_dropdown.html.erb
index ceb2db447..98dce067a 100644
--- a/web/app/views/users/_user_dropdown.html.erb
+++ b/web/app/views/users/_user_dropdown.html.erb
@@ -45,7 +45,7 @@
<% end %>
<% end %>
<% if current_user && current_user.affiliate_partner.present? %>
-
+
<% end %>
<% if @nativeClient && Rails.application.config.jamblaster_menu %>
diff --git a/wordpress/plugins/README.txt b/wordpress/plugins/README.txt
new file mode 100644
index 000000000..532d20e61
--- /dev/null
+++ b/wordpress/plugins/README.txt
@@ -0,0 +1,7 @@
+The `jamkazam` folder is a wordpress plugin.
+
+It has a ton of boilerplate already added, so it's easy to extend.
+
+However, the only actual code currently is in jamkazam.php at the root folder. The code at the bottom looks for an *affiliate*
+parameter, and if found, sets a cookie in the same manner as the jam-web app does. This is so that users going to jamkazam.com
+landing pages can tack on the ?affiliate=10000 parameter and, if the user ends up signing up, then the affiliate_referra_id on the user will be set
diff --git a/wordpress/plugins/jamkazam/LICENSE.txt b/wordpress/plugins/jamkazam/LICENSE.txt
new file mode 100644
index 000000000..ba424fb84
--- /dev/null
+++ b/wordpress/plugins/jamkazam/LICENSE.txt
@@ -0,0 +1 @@
+This is JamKazam source code. Redistribution not allowed except as specifically granted by JamKazam.
\ No newline at end of file
diff --git a/wordpress/plugins/jamkazam/README.txt b/wordpress/plugins/jamkazam/README.txt
new file mode 100644
index 000000000..60e25a3d9
--- /dev/null
+++ b/wordpress/plugins/jamkazam/README.txt
@@ -0,0 +1,114 @@
+=== Plugin Name ===
+Contributors: (this should be a list of wordpress.org userid's)
+Donate link: http://example.com/
+Tags: comments, spam
+Requires at least: 3.0.1
+Tested up to: 3.4
+Stable tag: 4.3
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+Here is a short description of the plugin. This should be no more than 150 characters. No markup here.
+
+== Description ==
+
+This is the long description. No limit, and you can use Markdown (as well as in the following sections).
+
+For backwards compatibility, if this section is missing, the full length of the short description will be used, and
+Markdown parsed.
+
+A few notes about the sections above:
+
+* "Contributors" is a comma separated list of wp.org/wp-plugins.org usernames
+* "Tags" is a comma separated list of tags that apply to the plugin
+* "Requires at least" is the lowest version that the plugin will work on
+* "Tested up to" is the highest version that you've *successfully used to test the plugin*. Note that it might work on
+higher versions... this is just the highest one you've verified.
+* Stable tag should indicate the Subversion "tag" of the latest stable version, or "trunk," if you use `/trunk/` for
+stable.
+
+ Note that the `readme.txt` of the stable tag is the one that is considered the defining one for the plugin, so
+if the `/trunk/readme.txt` file says that the stable tag is `4.3`, then it is `/tags/4.3/readme.txt` that'll be used
+for displaying information about the plugin. In this situation, the only thing considered from the trunk `readme.txt`
+is the stable tag pointer. Thus, if you develop in trunk, you can update the trunk `readme.txt` to reflect changes in
+your in-development version, without having that information incorrectly disclosed about the current stable version
+that lacks those changes -- as long as the trunk's `readme.txt` points to the correct stable tag.
+
+ If no stable tag is provided, it is assumed that trunk is stable, but you should specify "trunk" if that's where
+you put the stable version, in order to eliminate any doubt.
+
+== Installation ==
+
+This section describes how to install the plugin and get it working.
+
+e.g.
+
+1. Upload `plugin-name.php` to the `/wp-content/plugins/` directory
+1. Activate the plugin through the 'Plugins' menu in WordPress
+1. Place `` in your templates
+
+== Frequently Asked Questions ==
+
+= A question that someone might have =
+
+An answer to that question.
+
+= What about foo bar? =
+
+Answer to foo bar dilemma.
+
+== Screenshots ==
+
+1. This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
+the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
+directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png`
+(or jpg, jpeg, gif).
+2. This is the second screen shot
+
+== Changelog ==
+
+= 1.0 =
+* A change since the previous version.
+* Another change.
+
+= 0.5 =
+* List versions from most recent at top to oldest at bottom.
+
+== Upgrade Notice ==
+
+= 1.0 =
+Upgrade notices describe the reason a user should upgrade. No more than 300 characters.
+
+= 0.5 =
+This version fixes a security related bug. Upgrade immediately.
+
+== Arbitrary section ==
+
+You may provide arbitrary sections, in the same format as the ones above. This may be of use for extremely complicated
+plugins where more information needs to be conveyed that doesn't fit into the categories of "description" or
+"installation." Arbitrary sections will be shown below the built-in sections outlined above.
+
+== A brief Markdown Example ==
+
+Ordered list:
+
+1. Some feature
+1. Another feature
+1. Something else about the plugin
+
+Unordered list:
+
+* something
+* something else
+* third thing
+
+Here's a link to [WordPress](http://wordpress.org/ "Your favorite software") and one to [Markdown's Syntax Documentation][markdown syntax].
+Titles are optional, naturally.
+
+[markdown syntax]: http://daringfireball.net/projects/markdown/syntax
+ "Markdown is what the parser uses to process much of the readme file"
+
+Markdown uses email style notation for blockquotes and I've been told:
+> Asterisks for *emphasis*. Double it up for **strong**.
+
+``
\ No newline at end of file
diff --git a/wordpress/plugins/jamkazam/admin/class-jamkazam-admin.php b/wordpress/plugins/jamkazam/admin/class-jamkazam-admin.php
new file mode 100644
index 000000000..cfcd93736
--- /dev/null
+++ b/wordpress/plugins/jamkazam/admin/class-jamkazam-admin.php
@@ -0,0 +1,103 @@
+
+ */
+class JamKazam_Admin {
+
+ /**
+ * The ID of this plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ * @var string $plugin_name The ID of this plugin.
+ */
+ private $plugin_name;
+
+ /**
+ * The version of this plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ * @var string $version The current version of this plugin.
+ */
+ private $version;
+
+ /**
+ * Initialize the class and set its properties.
+ *
+ * @since 1.0.0
+ * @param string $plugin_name The name of this plugin.
+ * @param string $version The version of this plugin.
+ */
+ public function __construct( $plugin_name, $version ) {
+
+ $this->plugin_name = $plugin_name;
+ $this->version = $version;
+
+ }
+
+ /**
+ * Register the stylesheets for the admin area.
+ *
+ * @since 1.0.0
+ */
+ public function enqueue_styles() {
+
+ /**
+ * This function is provided for demonstration purposes only.
+ *
+ * An instance of this class should be passed to the run() function
+ * defined in JamKazam_Loader as all of the hooks are defined
+ * in that particular class.
+ *
+ * The JamKazam_Loader will then create the relationship
+ * between the defined hooks and the functions defined in this
+ * class.
+ */
+
+ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/jamkazam-admin.css', array(), $this->version, 'all' );
+
+ }
+
+ /**
+ * Register the JavaScript for the admin area.
+ *
+ * @since 1.0.0
+ */
+ public function enqueue_scripts() {
+
+ /**
+ * This function is provided for demonstration purposes only.
+ *
+ * An instance of this class should be passed to the run() function
+ * defined in JamKazam_Loader as all of the hooks are defined
+ * in that particular class.
+ *
+ * The JamKazam_Loader will then create the relationship
+ * between the defined hooks and the functions defined in this
+ * class.
+ */
+
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/jamkazam-admin.js', array( 'jquery' ), $this->version, false );
+
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/admin/css/jamkazam-admin.css b/wordpress/plugins/jamkazam/admin/css/jamkazam-admin.css
new file mode 100644
index 000000000..00c8c7f74
--- /dev/null
+++ b/wordpress/plugins/jamkazam/admin/css/jamkazam-admin.css
@@ -0,0 +1,4 @@
+/**
+ * All of the CSS for your admin-specific functionality should be
+ * included in this file.
+ */
\ No newline at end of file
diff --git a/wordpress/plugins/jamkazam/admin/index.php b/wordpress/plugins/jamkazam/admin/index.php
new file mode 100644
index 000000000..e71af0ef2
--- /dev/null
+++ b/wordpress/plugins/jamkazam/admin/index.php
@@ -0,0 +1 @@
+
+
+
diff --git a/wordpress/plugins/jamkazam/includes/class-jamkazam-activator.php b/wordpress/plugins/jamkazam/includes/class-jamkazam-activator.php
new file mode 100644
index 000000000..bd741f8a5
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/class-jamkazam-activator.php
@@ -0,0 +1,36 @@
+
+ */
+class JamKazam_Activator {
+
+ /**
+ * Short Description. (use period)
+ *
+ * Long Description.
+ *
+ * @since 1.0.0
+ */
+ public static function activate() {
+
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/includes/class-jamkazam-deactivator.php b/wordpress/plugins/jamkazam/includes/class-jamkazam-deactivator.php
new file mode 100644
index 000000000..74d09db9c
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/class-jamkazam-deactivator.php
@@ -0,0 +1,36 @@
+
+ */
+class JamKazam_Deactivator {
+
+ /**
+ * Short Description. (use period)
+ *
+ * Long Description.
+ *
+ * @since 1.0.0
+ */
+ public static function deactivate() {
+
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/includes/class-jamkazam-i18n.php b/wordpress/plugins/jamkazam/includes/class-jamkazam-i18n.php
new file mode 100644
index 000000000..f18ae5184
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/class-jamkazam-i18n.php
@@ -0,0 +1,47 @@
+
+ */
+class JamKazam_i18n {
+
+
+ /**
+ * Load the plugin text domain for translation.
+ *
+ * @since 1.0.0
+ */
+ public function load_plugin_textdomain() {
+
+ load_plugin_textdomain(
+ 'jamkazam',
+ false,
+ dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
+ );
+
+ }
+
+
+
+}
diff --git a/wordpress/plugins/jamkazam/includes/class-jamkazam-loader.php b/wordpress/plugins/jamkazam/includes/class-jamkazam-loader.php
new file mode 100644
index 000000000..0fe88c103
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/class-jamkazam-loader.php
@@ -0,0 +1,129 @@
+
+ */
+class JamKazam_Loader {
+
+ /**
+ * The array of actions registered with WordPress.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @var array $actions The actions registered with WordPress to fire when the plugin loads.
+ */
+ protected $actions;
+
+ /**
+ * The array of filters registered with WordPress.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @var array $filters The filters registered with WordPress to fire when the plugin loads.
+ */
+ protected $filters;
+
+ /**
+ * Initialize the collections used to maintain the actions and filters.
+ *
+ * @since 1.0.0
+ */
+ public function __construct() {
+
+ $this->actions = array();
+ $this->filters = array();
+
+ }
+
+ /**
+ * Add a new action to the collection to be registered with WordPress.
+ *
+ * @since 1.0.0
+ * @param string $hook The name of the WordPress action that is being registered.
+ * @param object $component A reference to the instance of the object on which the action is defined.
+ * @param string $callback The name of the function definition on the $component.
+ * @param int $priority Optional. The priority at which the function should be fired. Default is 10.
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
+ */
+ public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
+ $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
+ }
+
+ /**
+ * Add a new filter to the collection to be registered with WordPress.
+ *
+ * @since 1.0.0
+ * @param string $hook The name of the WordPress filter that is being registered.
+ * @param object $component A reference to the instance of the object on which the filter is defined.
+ * @param string $callback The name of the function definition on the $component.
+ * @param int $priority Optional. The priority at which the function should be fired. Default is 10.
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1
+ */
+ public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
+ $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
+ }
+
+ /**
+ * A utility function that is used to register the actions and hooks into a single
+ * collection.
+ *
+ * @since 1.0.0
+ * @access private
+ * @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
+ * @param string $hook The name of the WordPress filter that is being registered.
+ * @param object $component A reference to the instance of the object on which the filter is defined.
+ * @param string $callback The name of the function definition on the $component.
+ * @param int $priority The priority at which the function should be fired.
+ * @param int $accepted_args The number of arguments that should be passed to the $callback.
+ * @return array The collection of actions and filters registered with WordPress.
+ */
+ private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
+
+ $hooks[] = array(
+ 'hook' => $hook,
+ 'component' => $component,
+ 'callback' => $callback,
+ 'priority' => $priority,
+ 'accepted_args' => $accepted_args
+ );
+
+ return $hooks;
+
+ }
+
+ /**
+ * Register the filters and actions with WordPress.
+ *
+ * @since 1.0.0
+ */
+ public function run() {
+
+ foreach ( $this->filters as $hook ) {
+ add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
+ }
+
+ foreach ( $this->actions as $hook ) {
+ add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
+ }
+
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/includes/class-jamkazam.php b/wordpress/plugins/jamkazam/includes/class-jamkazam.php
new file mode 100644
index 000000000..aeba0acd2
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/class-jamkazam.php
@@ -0,0 +1,218 @@
+
+ */
+class JamKazam {
+
+ /**
+ * The loader that's responsible for maintaining and registering all hooks that power
+ * the plugin.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @var JamKazam_Loader $loader Maintains and registers all hooks for the plugin.
+ */
+ protected $loader;
+
+ /**
+ * The unique identifier of this plugin.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @var string $plugin_name The string used to uniquely identify this plugin.
+ */
+ protected $plugin_name;
+
+ /**
+ * The current version of the plugin.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @var string $version The current version of the plugin.
+ */
+ protected $version;
+
+ /**
+ * Define the core functionality of the plugin.
+ *
+ * Set the plugin name and the plugin version that can be used throughout the plugin.
+ * Load the dependencies, define the locale, and set the hooks for the admin area and
+ * the public-facing side of the site.
+ *
+ * @since 1.0.0
+ */
+ public function __construct() {
+ if ( defined( 'JAMKAZAM_VERSION' ) ) {
+ $this->version = JAMKAZAM_VERSION;
+ } else {
+ $this->version = '1.0.0';
+ }
+ $this->plugin_name = 'jamkazam';
+
+ $this->load_dependencies();
+ $this->set_locale();
+ $this->define_admin_hooks();
+ $this->define_public_hooks();
+
+ }
+
+ /**
+ * Load the required dependencies for this plugin.
+ *
+ * Include the following files that make up the plugin:
+ *
+ * - JamKazam_Loader. Orchestrates the hooks of the plugin.
+ * - JamKazam_i18n. Defines internationalization functionality.
+ * - JamKazam_Admin. Defines all hooks for the admin area.
+ * - JamKazam_Public. Defines all hooks for the public side of the site.
+ *
+ * Create an instance of the loader which will be used to register the hooks
+ * with WordPress.
+ *
+ * @since 1.0.0
+ * @access private
+ */
+ private function load_dependencies() {
+
+ /**
+ * The class responsible for orchestrating the actions and filters of the
+ * core plugin.
+ */
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-jamkazam-loader.php';
+
+ /**
+ * The class responsible for defining internationalization functionality
+ * of the plugin.
+ */
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-jamkazam-i18n.php';
+
+ /**
+ * The class responsible for defining all actions that occur in the admin area.
+ */
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-jamkazam-admin.php';
+
+ /**
+ * The class responsible for defining all actions that occur in the public-facing
+ * side of the site.
+ */
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-jamkazam-public.php';
+
+ $this->loader = new JamKazam_Loader();
+
+ }
+
+ /**
+ * Define the locale for this plugin for internationalization.
+ *
+ * Uses the JamKazam_i18n class in order to set the domain and to register the hook
+ * with WordPress.
+ *
+ * @since 1.0.0
+ * @access private
+ */
+ private function set_locale() {
+
+ $plugin_i18n = new JamKazam_i18n();
+
+ $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
+
+ }
+
+ /**
+ * Register all of the hooks related to the admin area functionality
+ * of the plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ */
+ private function define_admin_hooks() {
+
+ $plugin_admin = new JamKazam_Admin( $this->get_plugin_name(), $this->get_version() );
+
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
+
+ }
+
+ /**
+ * Register all of the hooks related to the public-facing functionality
+ * of the plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ */
+ private function define_public_hooks() {
+
+ $plugin_public = new JamKazam_Public( $this->get_plugin_name(), $this->get_version() );
+
+ $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
+ $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
+
+ }
+
+ /**
+ * Run the loader to execute all of the hooks with WordPress.
+ *
+ * @since 1.0.0
+ */
+ public function run() {
+ $this->loader->run();
+ }
+
+ /**
+ * The name of the plugin used to uniquely identify it within the context of
+ * WordPress and to define internationalization functionality.
+ *
+ * @since 1.0.0
+ * @return string The name of the plugin.
+ */
+ public function get_plugin_name() {
+ return $this->plugin_name;
+ }
+
+ /**
+ * The reference to the class that orchestrates the hooks with the plugin.
+ *
+ * @since 1.0.0
+ * @return JamKazam_Loader Orchestrates the hooks of the plugin.
+ */
+ public function get_loader() {
+ return $this->loader;
+ }
+
+ /**
+ * Retrieve the version number of the plugin.
+ *
+ * @since 1.0.0
+ * @return string The version number of the plugin.
+ */
+ public function get_version() {
+ return $this->version;
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/includes/index.php b/wordpress/plugins/jamkazam/includes/index.php
new file mode 100644
index 000000000..e71af0ef2
--- /dev/null
+++ b/wordpress/plugins/jamkazam/includes/index.php
@@ -0,0 +1 @@
+run();
+
+}
+run_jamkazam();
+
+
+
+/**
+* Set affiliate tracking cookie if there is an `?affiliate=xxxx` parameter in the URL
+* The rails set honors this cookie, and a new user will be associated with the affiliate.
+*/
+add_action( 'init', 'process_post' );
+function process_post() {
+ $affiliate_id = $_GET['affiliate'];
+
+ $expiration = current_time( 'timestamp' ) + ( DAY_IN_SECONDS * 2 );
+ #cookies[:affiliate_visitor] = { :value => params[:affiliate], :expires => Time.now + 3600 * 24} # 1 day from now
+
+ if(isset($affiliate_id)) {
+ setcookie('affiliate_visitor', $affiliate_id, $expiration, '/', '.jamkazam.com');
+ }
+}
\ No newline at end of file
diff --git a/wordpress/plugins/jamkazam/languages/jamkazam.pot b/wordpress/plugins/jamkazam/languages/jamkazam.pot
new file mode 100644
index 000000000..e69de29bb
diff --git a/wordpress/plugins/jamkazam/public/class-jamkazam-public.php b/wordpress/plugins/jamkazam/public/class-jamkazam-public.php
new file mode 100644
index 000000000..7c8abb441
--- /dev/null
+++ b/wordpress/plugins/jamkazam/public/class-jamkazam-public.php
@@ -0,0 +1,103 @@
+
+ */
+class JamKazam_Public {
+
+ /**
+ * The ID of this plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ * @var string $plugin_name The ID of this plugin.
+ */
+ private $plugin_name;
+
+ /**
+ * The version of this plugin.
+ *
+ * @since 1.0.0
+ * @access private
+ * @var string $version The current version of this plugin.
+ */
+ private $version;
+
+ /**
+ * Initialize the class and set its properties.
+ *
+ * @since 1.0.0
+ * @param string $plugin_name The name of the plugin.
+ * @param string $version The version of this plugin.
+ */
+ public function __construct( $plugin_name, $version ) {
+
+ $this->plugin_name = $plugin_name;
+ $this->version = $version;
+
+ }
+
+ /**
+ * Register the stylesheets for the public-facing side of the site.
+ *
+ * @since 1.0.0
+ */
+ public function enqueue_styles() {
+
+ /**
+ * This function is provided for demonstration purposes only.
+ *
+ * An instance of this class should be passed to the run() function
+ * defined in JamKazam_Loader as all of the hooks are defined
+ * in that particular class.
+ *
+ * The JamKazam_Loader will then create the relationship
+ * between the defined hooks and the functions defined in this
+ * class.
+ */
+
+ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/jamkazam-public.css', array(), $this->version, 'all' );
+
+ }
+
+ /**
+ * Register the JavaScript for the public-facing side of the site.
+ *
+ * @since 1.0.0
+ */
+ public function enqueue_scripts() {
+
+ /**
+ * This function is provided for demonstration purposes only.
+ *
+ * An instance of this class should be passed to the run() function
+ * defined in JamKazam_Loader as all of the hooks are defined
+ * in that particular class.
+ *
+ * The JamKazam_Loader will then create the relationship
+ * between the defined hooks and the functions defined in this
+ * class.
+ */
+
+ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/jamkazam-public.js', array( 'jquery' ), $this->version, false );
+
+ }
+
+}
diff --git a/wordpress/plugins/jamkazam/public/css/jamkazam-public.css b/wordpress/plugins/jamkazam/public/css/jamkazam-public.css
new file mode 100644
index 000000000..65bbf9630
--- /dev/null
+++ b/wordpress/plugins/jamkazam/public/css/jamkazam-public.css
@@ -0,0 +1,4 @@
+/**
+ * All of the CSS for your public-facing functionality should be
+ * included in this file.
+ */
\ No newline at end of file
diff --git a/wordpress/plugins/jamkazam/public/index.php b/wordpress/plugins/jamkazam/public/index.php
new file mode 100644
index 000000000..e71af0ef2
--- /dev/null
+++ b/wordpress/plugins/jamkazam/public/index.php
@@ -0,0 +1 @@
+
+
+
diff --git a/wordpress/plugins/jamkazam/uninstall.php b/wordpress/plugins/jamkazam/uninstall.php
new file mode 100644
index 000000000..01d73af45
--- /dev/null
+++ b/wordpress/plugins/jamkazam/uninstall.php
@@ -0,0 +1,31 @@
+