<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title></title>
  <subtitle></subtitle>
  <id>https://www.endpointdev.com/blog/tags/drupal/</id>
  <link href="https://www.endpointdev.com/blog/tags/drupal/"/>
  <link href="https://www.endpointdev.com/blog/tags/drupal/" rel="self"/>
  <updated>2018-04-05T00:00:00+00:00</updated>
  <author>
    <name>End Point Dev</name>
  </author>
  
    <entry>
      <title>Start basic application with Vue.js 2 and Drupal 8</title>
      <link rel="alternate" href="https://www.endpointdev.com/blog/2018/04/start-basic-application-with-vue-drupal/"/>
      <id>https://www.endpointdev.com/blog/2018/04/start-basic-application-with-vue-drupal/</id>
      <published>2018-04-05T00:00:00+00:00</published>
      <author>
        <name>Piotr Hankiewicz</name>
      </author>
      <content type="html">
        &lt;img src=&#34;/blog/2018/04/start-basic-application-with-vue-drupal/vue-and-drupal.jpg&#34; width=&#34;1200&#34; alt=&#34;Vue.js 2 and Drupal 8&#34; /&gt;
&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;The purpose of creating this post is to show how fast can you build web applications with Vue.js on the front-end and Drupal on the back-end side.&lt;/p&gt;
&lt;p&gt;Let’s call our project “Awesome Nerds”.&lt;/p&gt;
&lt;h3 id=&#34;what-do-we-need&#34;&gt;What do we need?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Debian/Ubuntu system&lt;/li&gt;
&lt;li&gt;Internet&lt;/li&gt;
&lt;li&gt;30 minutes&lt;/li&gt;
&lt;li&gt;Vagrant &amp;amp; VirtualBox&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Vim&lt;/li&gt;
&lt;li&gt;Yarn&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;step-by-step&#34;&gt;Step by step&lt;/h3&gt;
&lt;p&gt;Here’s what we’re going to do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install Vagrant, VirtualBox, and Git&lt;/li&gt;
&lt;li&gt;Setup a new Drupal 8 project that will be our back-end project&lt;/li&gt;
&lt;li&gt;Setup a new Vue.js project that will be our front-end application&lt;/li&gt;
&lt;li&gt;Let’s code&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;install-vagrant-virtualbox-and-git&#34;&gt;Install Vagrant, VirtualBox, and Git&lt;/h3&gt;
&lt;p&gt;Open your console and run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get install software-properties-common&lt;/code&gt; - getting some common libraries&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-add-repository ppa:ansible/ansible&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get install ansible&lt;/code&gt; - installing Ansible&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ wget ‘https://releases.hashicorp.com/vagrant/2.0.2/vagrant_2.0.2_x86_64.deb’ &amp;amp;&amp;amp; dpkg -i vagrant_2.0.2_x86_64.deb&lt;/code&gt; - installing Vagrant&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get install dkms&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ deb https://download.virtualbox.org/virtualbox/debian &amp;lt;mydist&amp;gt; contrib&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get install virtualbox-5.2 git vim nfs-kernel-server&lt;/code&gt; - installing VirtualBox&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ vagrant plugin install vagrant-vbguest&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ echo &amp;quot;deb https://dl.yarnpkg.com/debian/ stable main&amp;quot; | sudo tee /etc/apt/sources.list.d/yarn.list&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install yarn&lt;/code&gt; - installing Yarn&lt;/p&gt;
&lt;p&gt;Now we can continue to the back-end project installation.&lt;/p&gt;
&lt;h3 id=&#34;install-and-setup-back-end-project&#34;&gt;Install and setup back-end project&lt;/h3&gt;
&lt;p&gt;Create a new folder for the project:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ mkdir awesome_nerds &amp;amp;&amp;amp; cd awesome_nerds&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ mkdir frontend backend&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;We need to clone the DrupalVM repository. DrupalVM is a Drupal setup that helps to encapsulate services with Vagrant. Run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ cd backend&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ git clone git@github.com:geerlingguy/drupal-vm.git .&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Let’s name our project:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ vim default.config.yml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Look and set these two settings so they look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vagrant_hostname: awesomenerds.backend                                   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vagrant_machine_name: awesomenerds_backend&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Quit Vim and run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ vagrant up&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It will take a while to set up everything, you can get a coffee or browse some memes or go to the next chapter and start creating our front-end project.&lt;/p&gt;
&lt;p&gt;When it’s ready we will have a running Drupal 8 setup with MySQL, PHP 7, and Apache (you can configure this stack in &lt;code&gt;default.config.yml&lt;/code&gt; if you prefer nginx for example).&lt;/p&gt;
&lt;p&gt;Drupal project files are in the &lt;code&gt;drupal&lt;/code&gt; directory and that’s the only folder that you would want to add to a project Git repository.&lt;/p&gt;
&lt;h3 id=&#34;setup-new-vuejs-project&#34;&gt;Setup new Vue.js project&lt;/h3&gt;
&lt;p&gt;We will use a minimal project skeleton from &lt;a href=&#34;https://github.com/vuejs-templates/webpack&#34;&gt;https://github.com/vuejs-templates/webpack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ cd awesome_nerds/frontend&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ git clone https://github.com/vuejs-templates/webpack .&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ yarn install -g vue-cli&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ vue init webpack awesome_nerds&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Name the project “awesome_nerds” (yes!) and just hit enter to install with defaults.&lt;/p&gt;
&lt;p&gt;When you run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ yarn run dev&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;you will get a fresh Vue.js application running on http://localhost:8080.&lt;/p&gt;
&lt;h3 id=&#34;lets-code&#34;&gt;Let’s code!&lt;/h3&gt;
&lt;p&gt;Now we are ready for development. It can be really rapid, both Vue.js 2 and Drupal 8 are impressively good and it’s just a matter of finding a good idea for your new start-up.&lt;/p&gt;
&lt;p&gt;In my next post I will continue and code a simple social application using the REST API of Drupal and our Vue.js front-end.&lt;/p&gt;
&lt;p&gt;Thank you and good luck!&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>Drupal — rapid development</title>
      <link rel="alternate" href="https://www.endpointdev.com/blog/2017/05/drupal-rapid-development/"/>
      <id>https://www.endpointdev.com/blog/2017/05/drupal-rapid-development/</id>
      <published>2017-05-26T00:00:00+00:00</published>
      <author>
        <name>Piotr Hankiewicz</name>
      </author>
      <content type="html">
        &lt;div class=&#34;separator&#34; style=&#34;clear: both; text-align: center;&#34;&gt;&lt;a href=&#34;/blog/2017/05/drupal-rapid-development/image-0.gif&#34; imageanchor=&#34;1&#34; style=&#34;margin-left: 1em; margin-right: 1em;&#34;&gt;&lt;img border=&#34;0&#34; data-original-height=&#34;279&#34; data-original-width=&#34;640&#34; src=&#34;/blog/2017/05/drupal-rapid-development/image-0.gif&#34;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Here at End Point, we had the pleasure to be a part of multiple &lt;strong&gt;Drupal&lt;/strong&gt; &lt;strong&gt;6&lt;/strong&gt;, &lt;strong&gt;7&lt;/strong&gt; and &lt;strong&gt;8&lt;/strong&gt; projects. Most of our clients wanted to use the latest Drupal version, to have a long term support, stable platform.&lt;/p&gt;
&lt;p&gt;A few years ago, I already had big experience with PHP itself and other, various PHP frameworks like WordPress, Joomla! or TYPO3. I was happy to use all of them, but then one of our clients asked us for a simple Drupal 6 task. That’s how I started my Drupal journey which continues until now.&lt;/p&gt;
&lt;p&gt;To be honest, I had a difficult start, it was different, new and pretty inscrutable for me. After a few days of reading documentation and playing with the system I was ready to do some simple work. Here, I wanted to share my thoughts about Drupal and tell you why &lt;strong&gt;I LOVE!&lt;/strong&gt; it.&lt;/p&gt;
&lt;h3 id=&#34;low-learning-curve&#34;&gt;Low learning curve&lt;/h3&gt;
&lt;p&gt;It took, of course, a few months until I was ready to build something more complex, but it really takes a few days only to be ready for simple development. It’s not only about Drupal, but also PHP, it’s much cheaper to maintain and extend a project. Maybe it’s not so important with smaller projects, but definitely important for massive code bases. Programmers can jump in and start being &lt;strong&gt;productive&lt;/strong&gt; really quick.&lt;/p&gt;
&lt;h3 id=&#34;great-documentation&#34;&gt;Great documentation&lt;/h3&gt;
&lt;p&gt;Drupal documentation is well structured and constantly developed, usually you can find what you need within a few minutes. It’s critical and must have for any other framework and not so common unfortunately.&lt;/p&gt;
&lt;h3 id=&#34;big-community&#34;&gt;Big community&lt;/h3&gt;
&lt;p&gt;The Drupal community is one of the biggest IT communities I have ever encountered. They extend, fix and document the Drupal core regularly. Most of them have their other jobs and work on this project just for fun and with passion.&lt;/p&gt;
&lt;h3 id=&#34;its-free&#34;&gt;It’s free&lt;/h3&gt;
&lt;p&gt;It’s an open source project, that’s one of the biggest pros here. You can get it for free, you can get support &lt;strong&gt;for free&lt;/strong&gt;, you can join the community for free too (:)).&lt;/p&gt;
&lt;div class=&#34;separator&#34; style=&#34;clear: both; text-align: center;&#34;&gt;&lt;a href=&#34;/blog/2017/05/drupal-rapid-development/image-1-big.png&#34; imageanchor=&#34;1&#34; style=&#34;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&#34;&gt;&lt;img border=&#34;0&#34; data-original-height=&#34;318&#34; data-original-width=&#34;318&#34; height=&#34;200&#34; src=&#34;/blog/2017/05/drupal-rapid-development/image-1.png&#34; width=&#34;200&#34;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 id=&#34;modules&#34;&gt;Modules&lt;/h3&gt;
&lt;p&gt;On the official Drupal website you can find tons of free plugins/modules. It’s a time and money saver, you don’t need to reinvent the wheel for every new widget on your website and focus on fireworks.&lt;/p&gt;
&lt;p&gt;Usually you can just go there and find a proper component. E-commerce shop? Slideshow? Online classifieds website? No problem! It’s all there.&lt;/p&gt;
&lt;h3 id=&#34;php7-support&#34;&gt;PHP7 support&lt;/h3&gt;
&lt;p&gt;I can often hear from other developers that PHP is slow, well, it’s not the Road Runner, but come on, unless you are Facebook (and I think that they, correct me if I’m wrong, still use PHP :)) it’s just OK to use PHP.&lt;/p&gt;
&lt;p&gt;Drupal fully supports PHP7.&lt;/p&gt;
&lt;p&gt;With PHP7 it’s much faster, better and safer. To learn more: &lt;a href=&#34;https://pages.zend.com/rs/zendtechnologies/images/PHP7-Performance%20Infographic.pdf&#34;&gt;https://pages.zend.com/rs/zendtechnologies/images/PHP7-Performance%20Infographic.pdf&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the infographic you can see that &lt;strong&gt;PHP7&lt;/strong&gt; is much faster than &lt;strong&gt;Ruby&lt;/strong&gt;, &lt;strong&gt;Perl&lt;/strong&gt; and &lt;strong&gt;Python&lt;/strong&gt; when you try to render a Mandelbrot fractal. In general, you definitely can’t say that PHP is slow, same as Drupal.&lt;/p&gt;
&lt;h3 id=&#34;rest-api-support&#34;&gt;REST API support&lt;/h3&gt;
&lt;p&gt;Drupal has the built in, ready to use API system. In a few moments you can spawn a new API endpoint for you application. You don’t need to implement a whole API by yourself, I did it a few times in multiple languages, believe me, it’s problematic.&lt;/p&gt;
&lt;h3 id=&#34;perfect-for-a-backend-system&#34;&gt;Perfect for a backend system&lt;/h3&gt;
&lt;p&gt;Drupal is a perfect candidate for a backend system. Let’s imagine that you want to build a beautiful, mobile application. You want to let editors, other people to edit content. You want to grab this content through the API. It’s easy as pie with Drupal.&lt;/p&gt;
&lt;p&gt;Drupal’s web interface is stable and easy to use.&lt;/p&gt;
&lt;h3 id=&#34;power-of-taxonomies&#34;&gt;Power of taxonomies&lt;/h3&gt;
&lt;p&gt;Taxonomies are, really basically, just dictionaries. The best thing about taxonomies is that you don’t need to touch code to play with them.&lt;/p&gt;
&lt;p&gt;Let’s say that on your website you want to create a list of states in the USA. Using most of the frameworks you need to ask your developer/technical person to do so. With taxonomies you just need a few clicks and that’s it, you can put in on your website. That’s sweet, not only for non technical person, but for us, developers as well. Again, you can focus on actually making the website attractive, rather than spending time on things that can be automated.&lt;/p&gt;
&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;
&lt;p&gt;Of course, Drupal is not perfect, but it’s undeniably a great tool. Mobile application, single page application, corporate website—​there are no limits for this content management system. And actually, it is, in my opinion, the best tool to manage your content and it does not mean that you need to use Drupal to present it. You can create a &lt;strong&gt;mobile&lt;/strong&gt;, &lt;strong&gt;ReactJS&lt;/strong&gt;, &lt;strong&gt;AngularJS&lt;/strong&gt;, &lt;strong&gt;VueJS&lt;/strong&gt; application and combine it with Drupal easily.&lt;/p&gt;
&lt;p&gt;I hope that you’ve had a good reading and wish to hear back from you! Thanks.&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>Drupal Commerce for Fun and Profit</title>
      <link rel="alternate" href="https://www.endpointdev.com/blog/2014/05/drupal-commerce-for-fun-and-profit/"/>
      <id>https://www.endpointdev.com/blog/2014/05/drupal-commerce-for-fun-and-profit/</id>
      <published>2014-05-06T00:00:00+00:00</published>
      <author>
        <name>Kirk Harr</name>
      </author>
      <content type="html">
        &lt;p&gt;Drupal has for years been known as open source content management system (CMS) for creating easy content-driven websites for any topic. In addition to the CMS, there are a whole host of tools built upon this foundation to extend the features using modules. One module in particular I worked with recently for a client was Drupal Commerce, which helps to augment the CMS with an eCommerce platform.&lt;/p&gt;
&lt;p&gt;Within Drupal for normal content items, you would create distinct articles, which have a predefined model of fields that would reflect the different aspects of an article, author, title, tags, etc. While Drupal Commerce uses these same functions, it will also give you the capability to also define SKUs, product categories, and rules and procedures to be carried when adding a particular item to your cart. In much the same way as articles are published to the Drupal taxonomy to allow users to browse through the articles, product categories, and individual products are published, and allow the administrator to customize the layout of how those products would display.&lt;/p&gt;
&lt;h3 id=&#34;getting-started-with-drupal-commerce&#34;&gt;Getting Started with Drupal Commerce&lt;/h3&gt;
&lt;p&gt;One tool that is extremely helpful on getting a Drupal Commerce setup up for yourself is using the Drupal &lt;a href=&#34;https://drupal.org/project/commerce_kickstart&#34;&gt;Commerce Kickstart&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This tool, which is maintained by a group of Drupal consultants/enthusiasts who created an embedded install of Drupal with some modules installed and configured to get both a working Drupal install and a copy of the Commerce plugin as well. The installation is quite simple, you extract the install archive into your web server document root, and then you follow an install procedure to configure your database, the name of the site, and any other information needed.&lt;/p&gt;
&lt;p&gt;Once the install is complete, you will have a copy of Drupal Commerce installed, and will have a basic product display model on the front page with a few example products available. From here the next steps would be to define your own products and categories and input those model objects.&lt;/p&gt;
&lt;h3 id=&#34;creating-products&#34;&gt;Creating Products&lt;/h3&gt;
&lt;p&gt;Internally to Drupal, when referring to articles, there are distinct units for each article and category known as nodes, and a hierarchical taxonomy that is defined by the administrator for how these items fit together. Within Drupal Commerce there is a similar designation, but the items are known as ‘entities’ and could refer to a whole host of possible objects in Drupal Commerce. Here is a chart to show the relationships:&lt;/p&gt;
&lt;div class=&#34;separator&#34; style=&#34;clear: both; text-align: center;&#34;&gt;
&lt;a href=&#34;/blog/2014/05/drupal-commerce-for-fun-and-profit/image-0.png&#34; imageanchor=&#34;1&#34; style=&#34;margin-left: 1em; margin-right: 1em;&#34;&gt;&lt;img border=&#34;0&#34; height=&#34;233&#34; src=&#34;/blog/2014/05/drupal-commerce-for-fun-and-profit/image-0.png&#34; width=&#34;320&#34;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;These “entities” extend the original concept of a Drupal node to allow for different products, attributes of products and customers and their attributes. The product reference is a pointer object that allows a product to be added to a node article to be displayed on the front end of the site. This reference refers back to the products that were added, and if those product objects are updated, the content to display those products will stay static, but will be dynamically updated. In this way, the content templates for display products is abstracted from the actual product SKUs themselves.&lt;/p&gt;
&lt;p&gt;When defining each product there are a number of relationships that are created which relate to the possible categories that a product would live in, as well as fields and properties implied by that product. Here is a visual representation of these relationships:&lt;/p&gt;
&lt;div class=&#34;separator&#34; style=&#34;clear: both; text-align: center;&#34;&gt;
&lt;a href=&#34;/blog/2014/05/drupal-commerce-for-fun-and-profit/image-1.png&#34; imageanchor=&#34;1&#34; style=&#34;margin-left: 1em; margin-right: 1em;&#34;&gt;&lt;img border=&#34;0&#34; height=&#34;281&#34; src=&#34;/blog/2014/05/drupal-commerce-for-fun-and-profit/image-1.png&#34; width=&#34;320&#34;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Every product entity would by definition be part of the “Product” bundle, and also would fall into a custom bundle for the “T-shirt” product category. In this way, you can create as complex or as simple of relationships between products and categories to reflect the actual state of the business using the tool, and will allow for the product definitions to remain in place, even if you were to redefine the layout for those products to display.&lt;/p&gt;
&lt;h3 id=&#34;conclusions&#34;&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;Drupal Commerce is a hulking tool, with a number of learning curves and a bit of terminology to get straight, but once in place and working will give a user a very robust commerce platform. Any Drupal developer familiar with creating custom taxonomies for article display and categorization will be able to use the same skills to create a slick eCommerce site.&lt;/p&gt;

      </content>
    </entry>
  
</feed>
