4 things Publishers should consider during Digital Transformation

The shift in the publishing sector towards digital medium has in itself brought a revolution in a way how content is created and consumed by the audience. Digital is evolving in the publishing sector, thus, a flexible approach is the need of the hour to increase efficiencies and to remain relevant.

The move towards digital form opens the door to a vast range of opportunities for the publishing sector as it gives access to global market, multi-platform distribution and greater consumer engagement but the question still remains how to tap the potential.

Content creation: Traditionally, the content would be created for a single platform, with a specific target audience in mind. When adopting a digital approach, the publisher needs to ensure that the content needs to be created keeping in mind the different audience, across different channels as the content will be distributed across multiple platforms and in multiple formats in different web content management systems.

Thus, publishing content online is almost like creating a separate product altogether. This brings an additional investment, along with operational costs. To be successful and to be sustained in this business, there is a need to train, attract and retain talent with the appropriate skills. A need persists for both digital training and business training; a support much needed to encourage companies to experiment with innovative methods, products and services.

Content distribution: Multi-format/multi-platform distribution creates opportunities by offering consumers access to content everywhere, this also provides a new monetization model. However, to tap into this opportunity to maximize online revenues is not possible without investing in digital tools such as web content management system, CRM, DRM systems which are required to better manage the processes and accelerate content production.

Engaged community: Feedback plays an import role for publishers and digital medium gives access to this information. This information helps them to understand better and allows more tailored content to be created. Data analytics and insights should be used for a feedback loop and to incorporate those insights into the production of new content and to strategize accordingly. There has to be a  network-based strategy in place in addition to content strategy, to increase reach and network on the digital medium.

Collaboration: Since the new business models are driven by multi-platform distribution and consumer engagement.  Thus, there needs to be an increased collaboration to transfer knowledge and create new innovation communities through the proper implementation of web content management systems.

Online publishing is being disrupted like never before. Companies in these industries need to invest in new digital business opportunities to stay relevant in the changing landscape.

 

Beginner’s guide to Mail System in Drupal 7 and 8

This blog is all about How Drupal handles the Mail system & the stages it has to go through.
In Drupal to sends an email we need to take care of two rules

  1. Declare all the required properties under hook_mail().
  2. Call drupal_mail() with argument for actually sending the email

However in the scenario like bigger & complex site the above steps won’t be enough. But Drupal gives us a Flexibility to customize email sending process, before that it’s necessary to know how stuff works behind the scenes first. In this article I’ll show you how you can customize and extend the Drupal mail system to fulfill your needs.

While sending an email drupal_mail() function uses system class for sending an email. Every mail system needs to implement MailSystemInterface class to declare own sending behaviour.
MailsystemInterface class uses two methods 1) format() and 2) mail() 

As you can get it from name itself the first method format() method is used for formatting an email before it get send. Second method mail() method defines the exact email sending behaviour.

Flow of drupal_mail()

  • Set up default email messages properties. 
  • Build email(subject, body, with other required parameters) by calling hook_mail().
  • Allows module to alter email by calling hook_mail_alter().
  • Check for the responsible mail interface system which will handle the email.
  • Format the email message using format() method of the called mail system class.
  • send email using mail() method of the called mail system class.
  • return the processed email.

So you can  understand better that mailsystem plays an important role while sending email. By default drupal uses DefaultMailSystem class to send email. Will discuss this class in more detail first, let’s check out drupal 7 mail system module.

Mail system module in drupal provides an Administrative UI and Developer API for managing the used email/plugin. Allow to use different backends for formatting and sending e-mails by default, per module and per mail key. Additionally, a theme can be configured that is used for sent mails. In Drupal 7, that must be enabled for each template, in Drupal 8, it works reliably for any template being rendered while building and sending e-mails.
 

Mail system configuration

 

Drupal 7 don’t provide administrative UI to adjust the mail_system variable which defines  “email key” => “mail system class” type key-value pairs which correspond to what mail system class will be used by drupal_mail() at a specific email key. This is the point where the Mail System module comes in. It allows you to adjust the mail_system variable by an administrative UI and it provides some other useful configuration options, too.

The Mail System module related settings can be found under the Configuration > System > Mail System path 
inside your Drupal installation.


Mail System Settings

The default-system “email key” always exists and it determines which mail system class will be used by default for all outgoing emails. As you can see its default value is DefaultMailSystem so this is the reason why this mail system class will be used by drupal_mail() by default. 

The mailsystem_theme key is a little bit different since it defines which theme will be used to render the emails. let's assume that there is a drupal mail system related module which uses a template file to render emails. The mentioned template file obviously belongs to a hook_theme() entry to be able to use it at appropriate theme() calls. 
The Mail System module checks every theme registry entry for a specific “mail theme” key/property and if it exists in a particular entry then the specified mailsystem_theme value will be used to search for more specific template files when the theme registry entry related theme hook will be called.

Site wide mailsystem configuration

New Class

Imagine you have two or more different mail system classes available in your system provided by different modules. Each one has a format() and a mail() method. Now you need a custom mail system class which would use the format() method from one mail system class and it would use the mail() method from another class. This is the point where the Mail System module’s  “New Class” tool comes in, since it allows you to easily combine the behavior of two mail system classes by selecting their format() and mail() method for the new class.

New class configuration

New Setting

As we have seen, the mail_system variable’s default-system email key defines the site-wide mail system class which will be used for all emails. However there could be a situation when mail system class is not enough. In a situation like these the Mail System module allows you to easily add new email keys to the mail_system variable by selecting a module and a specific email key from its hook_mail() implementation.

New mail system setting

Mostly use mail system classes
My suggestion to all the learners is, before you start writing your own mail system class it is a good idea to study the most commonly used ones, because there are already some of them that will complete your needs and save lot of time. 

DefaultMailSystem
Drupal's built-in default mail system class. If you don’t modify the site-wide mail system class then this one will be used by drupal_mail() by default.

DefaultMailSystem’s format() method enforces the emails' output as plain text, therefore it doesn't matter how your messages are formatted — the result will always be plain text. The mail() method of the class sends the emails via PHP's mail() function, so a correctly set up and working email sending service is required for it.


Conclusion:
Email sending is an important task that affects most of your projects, therefore it is always good to know how to get the most out of the system. I hope this overview of the options help you to customizing and extending Drupal’s mail system helps you choose the best solution for your needs.

What skills should a Drupal Developer have?

With the ever growing Drupal Community, a beginner is many a times lost in the vast number of resources, with increasing number of developers in Valuebound, I spoke to some of the seasoned developers on their opinion about the skills that a Drupal developer should have and also sifted through tons of materials from Stackoverflow and some more places.
The skillset that we are discussing here will give a clear idea about where you stand, what you know, what you do not know and of course fill me up with what I have missed, and I will quickly add up the suggestions. Before this I have 6 things that drupal developer should know.

Technology Stack

From what I have understood, the very basic things  Drupal Developer would be expected to know in terms of languages are much similar to web development in general, since Drupal is built with PHP it is good to have a grip to begin with Drupal. And SQL well, a database to handle the rest.

  • PHP
  • MYSQL
  • JQuery

Version control — Git

To collaborate in a project, Drupal developers use the Git version control software . Learning the Git basics will help to stay organized and enable with essential skills for working with a team. Even if you're the only person on the project, there are still lots of advantages to using a version control system as part of your daily workflow.

  • A Vision for Version Control — What is version control, and why should you be using it for all of your projects?

  • Git for beginners — Everything you need to know to get started using Git.

  • Apply and Create Patches — How to apply a patch to a module provided by another developer, and how to create your own so you can contribute your fixes back to the community.

Drupal Skills

  • Research and install modules according to project requirements

  • Configure basic modules and core settings to get a site running

  • Drush command line tool

  • Make a custom Theme from zero which validates with good HTML/CSS.

  • Able to customize and tweak  forms, core, themes without altering core files but by using template.php or custom modules.

  • Can make forms from scratch using the API - with validation and posting back to the DB/email

  • Knowledge of key Drupal APIs like Queue API, Node API, Entity API,APIs of Drupal.

The Form API is not the only one. You should understand the Menu system (page, access, title and delivery callbacks, how to pass parameters to them, etc.), the Queue API for asynchronous operations, Batch API for long running operations, Entities and Field APIs for user editable structured data, Theme API and Render Arrays for anything presentation, Cache API, Schema and Database APIs, File API, Cache API and the Localization API.

  • Can create custom modules from scratch utilising core hooks and module hooks.

  • PHP, it's a PHP framework, so to really understand and use it, you need to understand PHP.

  • SQL, the list of SQL serves that Drupal can use is growing, but you will need to understand * SQL, relational database and how to setup some basic architecture.

  • Javascript (and jQuery). Drupal uses the jQuery js library, so it will be a lot easier if you not only, know how yo use javascript, but also understand how to use jQuery and some of it concepts.

  • OOPs - OOPs - OOPs

  • Web Services : The RESTful Web Services API is new in Drupal 8.  

Modules There is no must know module list, since it will all depend on the site and how you use them, but the following are widely used:

Views

  • Know how to make basic views and blocks.

  • Know how to make more complex views with relationships and terms.

  • Know how to use hook_views_query_alter, to make complex queries.

  • Know how to use hook_views_default_views, to create specific views.

Panels

The Panels module allows a site administrator to create customized layouts for multiple uses.

At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.

Other Skills

  • Be involved with the community and contributions, understand the naming conventions, CVS system and ideally have submitted some code or revisions, a module to Drupal.org (however simple) or submitted a patch (the process of getting a CVS account and getting your first code in is instructive to the community and to standards

  • Ability to use Drush to update or setup a site

  • Being able to edit existing functionality (core or module) without touching the core or module and knowing whether to put it in template or a custom module.

  • good understanding of client-server architecture, how servers and browsers works. And knowledge of php and mysql, templates engines. And of course, you should also read Drupal documentations.

For any kind of a development setup, even in Drupal there is a range of roles which cluster up together to build and support Drupal Applications which includes :

System Admin or Devops who run the live stack and work in the process of deployment of Drupal sites from dev to live, they deal with performance issues, set up a Content Delivery Network, Varnish, Memcache - basically everything related to things after and during Deployment. These facilitators also help to run Drills to avoid issues like the one that happened with Gitlab recently.

QA - Test to ensure Quality adherence and matching requirements. Set up automated testing environments, auto schedule and run tests.

Project Manager / Scrum Master - run the team, remove obstacles to progress, ensure on time delivery of the project within budget.

Product owner - Facilitates with the requirements working closely with the project manager to prioritize the backlog. Normally has final sign off of all changes.

Design / UX - Creates up with the design and user experience. They help build prototypes that can then be converted into a Drupal theme.

A complete team consist of all the things above and you can eventually choose to select a profile to evolve into.

In some of the upcoming posts we will discuss about the things you should know that will give you an edge as a Drupal Developer.

Inspirations

Courtesy
 

6 More things to know if you are a Drupal Developer

The new year started with 6 things to read if you are a Drupal Developer and today we discuss 6 more things that should be handy for you to move up the scales with Drupal.

Command Line Interface:

Having an in-depth knowledge of Command Line Interface (CLI) brings more productivity to the developer. The one who is a CLI Ninja quickly automates repetitive tasks and also enhances the ability to use tools like Drush that perform tasks quickly without requiring a developer to navigate more than 3 mouse clicks to complete the overall process.

The CLI for Drupal is Drush - Dru for Drupal and sh for Shell.

Drush is a command line shell and Unix scripting interface for Drupal. Drush core ships with lots of useful commands for interacting with code like modules/themes/profiles. Similarly, it runs update.php, executes sql queries and DB migrations, and misc utilities like run cron or clear cache. Drush can be extended by 3rd party commandfiles.

The CLI provided by Drupal, Drush has been highly valuable and widely used feature, with the introduction of Drupal 8, Drupal console has come to light. Drupal Console gives an object-oriented interface and a myriad of utility functions provided by the Symfony Console libraries. The Drupal Console APIs are great, but presence of of two standards has lead to some duplication of functionality, which increases maintenance costs. This is mainly for features such as site install and configuration import / export, which to be adjusted occasionally to keep pace with changes made in Drupal core. This situation also creates confusion for module developers, who must decide which API will be best for their project.

Theming:

If you have been learning Drupal you would know that the changes from Drupal 7 to 8 has seen major changes, and it is a very important part of development, Drupal 8 does replaced template.php with Twig. To learn and use these, it is very important for a skilled Drupal developer to understand and work on the principles of theming.

A Drupal developer should have their own base theme, and not always rely on something pre built, it helps to improve Drupal theming skill and the most effective way to learn is to practice, and make one for yourself from the scratch. D8 and D7 theming are completely different and one must know the differences

Package Managers:

Package Managers help in installing, upgrading, configuring, and removing software, developers use package managers as an easy way of distributing reusable libraries and plugins it saves time spent to setup, upgrades or pushing to production servers. A good package manager works to be a life saver!

Composer is a dependency manager for PHP. Drupal core uses Composer to manage core dependencies like Symfony components and Guzzle.

It can be about installing Bootstrap and Sass from Node or Drush from Composer, it is necessary to know exactly what you are doing before running commands on your system.

CSS Preprocessors:

CSS, as a language has its own set of features, but that might not always be enough to create codes which are clean and reusable. CSS Preprocessors comes handy here, it reduces a lot of css work, write once like functions and use it in many places. It is used to add new modules minify css and js files and other stuff.

CSS Preprocessors offers an advanced way of creating CSS, extending the basic functionalities. But the decision to use it should depend on your expertise level, project requirement and of the team as a whole. But you should have the knowledge where you can take the call to use it or not.

Knowledge of the CMS:

Drupal is one of the niche things publishers use that gives a good ROI from both the developer’s and Content Manager’s side, a smart developer should know the way to relate between them both. How a platform helps the author, the manager and other stakeholders and users at various stages of the product will be having a great impact on the development of the product.

Hence it is imperative for you to understand not only the development and other technicalities of Drupal but also as a CMS so that you work for the underlying business objective of the platform.

Basics of Debugging:

They say that the more experience you have building stuff in Drupal the more time you will save by Debugging. Sometimes error messages are not enough to drill down into the details of a fault and there is where experience comes handy. Delve into Devel or XDebug to find errors.

Legends say, these 6 above will be a great addition to extensive Drupal Development! ;)

In Continuation to the post we will "Meet some Drupal Developers"

What makes up “Digital Experience”?

Digital Experience platform is a software to manage, deliver, and optimize experiences consistently across every digital touchpoint, as described by Forrester. A successful integration of all technologies to create a complete platform which bridges the gap between social and content, business and support.

In our previous article we discussed that more often than you realise Digital Experience delivery becomes a less important “thing” than other preferred things that gets decided during procurement like pricing and revenue optimization. Because Digital experience is fundamental to everyone’s everyday life, we talk about What makes up “Digital Experience”?

For websites with huge publishing needs coordination with various tools saves a lot of time. CRMs, social sharing play a big part to stay connected with the readers and help increase engagement and conversion.

Question on the strategies that will implement flexible integration and execution plan ought to be asked. Integration might not be a term too familiar with the business team but sure does hold importance with the in-house staff looking at the tech side of your project and decision makers. These stakeholders are familiar with the pain points that prevent an easy workflow for a digital transfromation.

Integration is the key. Flexibility of integration and going hand-in-hand with architectural strategy should be pivotal selection factors while choosing the technology components and procuring support vendors for your digital experience platform.

For a digital publishing platform for large media houses like the NYTimes, the need to ensure the making of Digital transformation is a focal point of integration between Technology and Business decisions.

What constitutes Digital Experience?

  • Collaborate content, customer details and core functionalities.

  • Combine marketing and monetization drives, implement analytics and improve workflow and add actions

  • Designate the rule of implementing platform uniformity across multiple channels

  • Manage a single user experience design for various touch points

  • Manage code reuse and avoid over customization

While there might be identifiable vendors offer “digital experience platforms,” it is in our best interest to accept and understand that a company of the size of NY times and alike need enterprise software and that my friend does not come as a free size for all.

There are questions a decision maker often asks

  1. Whether the CMS system breakable into pieces and extensible? Or do they come as packaged entities that might be core to the product?

  2. Can the legacy system be extended through reusable services and APIs? Or would be a complete overhaul and replace the old system? am I looking at a total rip and replace?

  3. Is this solution best for my system or is it a one-size fits all kind of?

  4. Can the deployment be done alongside the current system, will migration affect the business workflow? Or can this be seamlessly delivered across the organization as digital experience platforms?

  5. How much time and effort does it take on the whole? Is the ROI worth it?

  6. Does the solution integration vendor have a solid track record with verifiable references? Do they showcase best practices?

The end result is to get done and delivered a deliver a platform that is tailored to work for the organization taking into consideration all components that make the system into a wholesome digital experience platform. Developing and maintaining broader levels of software solutions and bridging the gaps between business, marketing, customer experience, in-house content authorship and data management.

Image Courtesy

What does a Drupal Developer do?

When you begin a search to upgrade your website or CMS, there are loads of options and frameworks which will ultimately mold and give shape to your Digital Experience, what you will eventually become.

Drupal is one such free and open source content management framework written in PHP, which web developers work on.

There are a few things a procurement manager looks into when taking in a team to change the current technologies, but many a time the question arises as to “What are the roles of a Drupal developer”?

Mostly for organizations that work to help augment your staffing needs, will migrate your website to Drupal if it is not already built with it.The team might use a new or fresh Drupal install or use a distribution and make it exactly like the organization wants it.

The Publishing industry biggies mostly use Drupal behind their sites.

“What does Drupal do”?

According to the needs of the platform, drupal developers make use of the configuration pages of the Drupal to develop functionalities like polls or blogs or internal systems like project submission areas.

When a content is published online in a leading publishing company, it goes through many checks and reviews before it is approved to be Published. It is known as the Workbench suite, it provides authors, editors, and publishers with a unified interface for managing content relevant to them. It allows people to focus on content because after all, that is what your employees are supposed to so when you are a Publishing entity.

Mostly, all of this can be done by click and drag, drop and save. So why the hype? Well, a skilled Drupal developer and architect knows which modules to use for the functionalities, and they know how to make or customize one to suit the requirements, even if they have not used it before. They configure to make a workable site.

That is the introduction to a Drupal developer’s profile. This is like making a house, before choosing the floor type and wallpaper you choose the number of floors the walls, rooms and that is why an experienced Drupal developer is known as a Drupal Architect. And there is a lot to learn on the path to becoming a Drupal Architect.

You want to let us know what your content would be like, how the end user would consume the content, how it would interact with other third party applications. How the performance of your website is in-tune with the experience you want to provide to your consumers. How you would integrate with Social platforms, how would your fetched data look from other website. How you would increase the performance to get in line with the newest versions that match with other modules made for the latest versions.

What does the pack comprise of?

A Site builder is the one who creates functionality with plugging and configuring various modules, a Developer writes custom modules to make new ones and a Themer makes awesome designs that act as the face of the project.

The Drupal community follows a best practices standard with Drupal Website Building.

In short a Drupal development team is the perfect package for an all-in development.

Image Courtesy

Inspirations

How to Configure Single Sign On across Multiple Drupal 8 Platforms or Websites ?

What do you mean by Single Sign On? Why do we use it? When do we use it?

Single Sign On is an authentication service that allows users to use one set of credentials i.e(username and password) to login to multiple sites. For example you are creating a main website for an university and there are ‘n’ number of websites for ‘n’ number of departments in the same university. You can login to main website, that will allow you to login to the respective department sites as well.

For SSO, there are two main parts namely, IDP (Identity Provider) and SP (Service Provider).

Configuration of SimpleSAMLphp on Drupal 8 may vary according to IDP such as Shibboleth 1.3, A-Select, CAS, OpenID, WS-Federation or OAuth.

Relevant: Configuration Management in Drupal 8 vs 7

Here we going to see how to setup SSO using SimpleSAMLphp using Shibboleth in Drupal 8.

Requirements:

  1. SimpleSAMLphp library (Latest Version is recommended. My version in simplesamlphp-1.14.8).
  2. Drupal 8 (Latest Version).
  3. SimpleSAMLPhp_auth module (https://www.drupal.org/project/simplesamlphp_auth).

SimpleSAMLphp configurations:

 For the site which is acting as the Service Provider, following are the configurations that need to be done.

  1. Download the SimpleSAMLphp library from (https://simplesamlphp.org/download).
  2. Put the folder in the level of your docroot.
  3. In docroot directory, create a symbolic link (named simplesaml) that points to simplesamlphp-1.14.8/www directory in the DRUPAL_ROOT directory.
  4. Command to create symbolic link is :

    ln -s simplesamlphp-1.14.8/www ./simplesaml (here my version is simplesamlphp-1.14.8)
  5. To generate certificates, create cert folder inside the simplesamlphp-1.14.8 folder as (DRUPAL_ROOT/simplesamlphp-1.14.8/cert)
  6. Run the following command inside the cert folder from terminal:

     openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem
  7. It will create two files saml.crt and saml.pem.
  8. Configure config.php which will be inside DRUPAL_ROOT/simplesamlphp-1.14.8/config/config.php
  9.  

    • Change the ‘store.type’ as ‘sql’ 
    • ‘store.sql.dsn’ as ‘mysql:host=localhost;dbname=db_name’ here the host will differ according to your server and dbname will be the your database name.
    • 'Store.sql.username' as ‘server database user_name’
    • 'Store.sql.password' as ‘server database password’
    • Enable this functionality 'enable.saml20-idp' => true, this setting is to receive the IDP request.
    • Change the ‘auth.adminpassword’, ‘technicalcontact_name’, ‘technicalcontact_email’ as per your requirement.
    • Add this snippet after config = array(); (i.e) at the last line. 
          $config['baseurlpath'] = 'http://'. $_SERVER['HTTP_HOST'] .'/simplesaml/'; (its mandatory).
    • After this step you can hit the above url.e.g:(example.com/simplesaml)
    • Login as admin and type the password which you have assigned to ‘auth.adminpassword’ and the screen will look like the image below:SimpleSAMLphp InstallationPage
    • Goto Federation Tab and copy the SAML 2.0 SP Metadata and send it to the Identity Provider site administrator. SAML 2.0 SP Metadata will look like:

  10. Paste the IDP metadata which you will receive from your IDP Provider inside /simplesamlphp/metadata/saml20-idp-remote.php. SAML 2.0 IDP metadata will look like:
  11.  Now configure the authsource.php inside config folder as shown, inside default-sp array you need to write the following code:

Drupal Configuration:

  1. Download the Simplesamlphp_auth module.
  2. Run composer drupal update command so that all the library required for simplesamlphp_auth module gets downloaded in the docroot/vendor folder.
  3. Enable the module.
  4. Navigate to Administration > Configuration > People > Simplesamlphp_auth (http://yoursite/admin/config/people/simplesamlphp_auth
    • Basic Settings: tick the  Activate authentication via SimpleSAMLphp. This should be checked to activate the simplesamlphp integration with Drupal.Basic-Settings

       

    • Local Authentication:Local Authentication

       

    • User Info and Syncing:User Info SyncingUser-info

       

  5. Add the following snippet to .htaccess
  6. After saving the configuration add the following snippet in settings.php. It is mandatory

Now hit example.com/saml_login (SP Site) it should redirect to your (IDP Site)url. After redirecting to the site which is set as IDP, you need to login using (name and password).Hit the Sign in button,you will be again redirected to your (SP Site).Now if you go to you IDP Site you can see that you are logged in to that site too.

This is what SimpleSAMLPhp all about.

Related: 

Configure Apache Solr with Drupal for better content search

Building Configuration Form in Drupal 8

Configuring Memcache with Drupal 8 to reduce database load

 

How to ace project delivery?

The need to cut down costs and increase efficiency in operations has become the need of the hour. Technological improvements are driving Digital Transitions and business decisions are becoming the point of change to make or break your company's history.

Large companies often embark on pilot projects to judge out whether increasing in-house capabilities will be something practically possible. In today’s world, falling behind the curve can lead to a disaster. Organizations rely on legacy systems which are outdated and could cripple a system and that is when outside help comes into play.

The best systems which I have come across that large firms prefer is one of staff augmentation - it gives you additional skills, same team without shouldering the costs of nurturing full time employees and reduced risks of outsourcing a whole goddamn project.

Companies may ramp up and down to adjust with changing demand. Ensure that the company you are hiring to complement your in house staff gives you a taste of their task with a two week or so pilot project so that you understand each other and check whether this works for you.

A typical technology project should involve these :

Phase 1 : Planning & Strategy Development

The augmentation team studies the client brief, understands end results, problems and ensure that right goals are set, as that would build a strong foundation for the project and a detailed brief would be a good checklist for future. 

Planning would also include gathering information from the client, reviewing content, creating a project schedule along with timelines. Since the team becomes a part of your in-house team they discuss strategies and timeline as that would help them to map project’s progress. A well defined strategy would include performance goals, user experience creations, analytics and insights.

Phase 2 : Budget & Resource Allocation

After the strategy is in place, the parent company will use it to understand the budget in terms of time that will be taken to complete the project and the resources which are being utilized to do each task.

At this stage, accurate costing and resource allocation becomes essential. Time is of an essence, thus, clear expectations should be drawn in terms of time allocation, and it should be accounted from both the sides. Not taking into account the time required by the client's team can be a key contributor in web projects going over budget. A well defined scope of work and a good understating of resources being used will help you set a realistic budget.

Phase 3 : Designing The Concept

A design speaks a lot about the work. Design includes style, tone, user interaction, and user interface. Once the visual concept is agreed upon, the design is applied. A well designed visual concept would result in a good user experience. Which will of course depend upon your requirement.

Phase 4: Development

The team - in house plus outsourced needs to have all in place, gather elements from the prototype and implement them to make a functional project.

Phase 5: Testing & Launch

Testing is required to ensure the functionality of the website and to detect compatible issues, if any. Tests will be conducted to ensure that the website is compatible with other browsers. After testing is done, the site will be hosted and launched.

While building a web project, it becomes easier if there is a process to follow and these guidelines will help you work better by keeping you focussed on each stage. The process flow for developing a web project remain the same: learn, plan, design, develop and launch.

Just make sure that while selecting a vendor, you choose and get settled upon the one you can trust to, who takes the time to understand your goal, timeframe and deliver the tangible result.

Image Courtesy : https://www.xpandcorp.com/images/staff.jpg

Why should your vendor be a Digital Experience creator?

Once again we hop on the journey to create a series of articles and this time we take on the challenge to deal with the topic DX - Digital Experience. We know about it but a very few speak about it. You get promised to get it delivered, but a lot of elements get left out in the process to seek and find.

More often than you realize Digital Experience delivery becomes a less important “thing” than other preferred things that gets decided during procurement like pricing and revenue optimization.

Digital Experience Delivery

 

We fail to realize that an engaging, synonymous digital experience holds the key to the code of holding your consumers with you. is the key to effective engagement in today’s integrated digital world. Companies are able to customize digital experiences for their employees with personalized, targeted content for fully connecting with customers, coworkers and Business Partners in the most powerful and productive way.

Digital experience solutions empower users with instant access to the information they need — when they need it. Accessibility is based on the user profile and is supported by all device types. The digital experience yields greater overall organizational efficiencies from target marketing to anticipating customer issues, to breaking down communication barriers, and more.

What does Digital Experience mean?

For your people

Your employees and others who contribute to your content go through the hassle to create, edit, analyse that goes on to get displayed on the screens worldwide in all kinds of devices. You might have a number of platforms and a lot of contributors for all, and there are times when an article created on one platform needs to be put on another, what do you do then? You ask them to recreate. Does that go smoothly for them? No.

digital experience for employees

Just like how your end users need a digital experience designed and customized just for them, so do your employees. The authoring experience should be tailor made for them so that it is hassle-free and they concentrate on what they do best, to create.

Digital experience for your employees mean how well you can communicate, how seamlessly you can use analytics tools for all of your websites and how easily can consumers interact with content that is on display with social sharing and mobile web delivery.

For you

Most Publishing establishment that runs web platforms are large with lots and lots of pages and content running live. There are business decisions that need to come into action, there are questions your resource team asks you.

digital experience for employers

But are you able to evaluate what is it, that is best for your business? Should you migrate? Should you use the current CMS? Should there be customizations? Does that reduce manual working time? 

For your consumers

Your consumers are the easiest chunk of people to please, you know what they want. An intuitive and immersive experience that is same for whatever screen they use. And isn’t that is one of the things that your vendor promises you?

digital experience for consumers

 

Because Digital experience is fundamental to everyone’s everyday life, we will talk about the things that fall under this category the next time. What makes up “Digital Experience”?

If you like this, you might want to check out this series about Cloud

Image Courtesies : http://wwwimages.adobe.com/content/dam/Adobe/en/solutions/digital-marketing/digital-analytics/images/bg-analytics-forrester-web-analytics-940x364.jpg

http://www.investirparaviver.com.br/wp-content/uploads/2016/07/Contas-Digitais.jpg

https://www-01.ibm.com/software/collaboration/digitalexperience/img/XDX_Landing_5roles_940x211px.png

http://www.sociallyawareblog.com/files/2014/06/20-BN.jpg

http://iwriten.com/wp-content/uploads/2016/06/Effects-of-Technology-on-…

 

6 things to read if you are a Drupal Developer

Happy new year!

2016 has been quite an year with all the hustle bustle around, lots of changes on its way to the next year. We recently celebrated Christmas with Joy and welcome 2017 whole heartedly.

We did a lot of articles, hands on trainings session and hope to bring more things to learn. We wrote about Cloud, Big Data and a lot about Drupal 8 including Migration and developer productivity.

Here are some of the most viewed and discussed posts from the past year. We have made a list for you so that it gets easy and you can also have access to other related posts.

1. How to send mail programmatically in Drupal 8

Sometime it is required that emails be sent on certain events e.g. for a blog website or a news site. We may need to send email after creating new article or blog or in case of e-commerce site. We might need to send confirmation mail after successful completion of an order.

This article is written by Aditya it shows us how we can use Mail API in Drupal 8 programmatically for sending emails.

2. Drupal 8: How to create a custom block programmatically

This article by Jaywant tells us the steps to follow to create a custom block in Drupal 8

In Drupal 8 Blocks are made up of two separate API. Block Plugin API, is a reusable API and Block Entity API, use for block placement and visibility control.

3. How to create Custom Rest Resources for POST methods in Drupal 8

One of the biggest changes in Drupal 8 is the integration of Rest services in the core. With use of Views it become very easy to create RESTful Services.

But there are certain situations when you need to create your own custom REST Resources. There are documentations available for creating a GET request using Views and using custom module. However there isn’t much documentation available for creating Rest Resources for POST methods.

In this article Malabya shared, how to create a REST Resource for POST methods.

4. How to Create Breadcrumb in Drupal 8

This post tells us how to create breadcrumb in Drupal 8. In Drupal 8, service is introduced as new concept to decouple reusable functionality.

Also to make these services pluggable and replaceable by registering them with a service container. For a developer, services are used to perform operations like accessing the database or sending an e-mail

5. Drupal 8 Commerce is on the Way! DrupalCon New Orleans 2016

Drupal commerce module to Drupal community, which took drupal to a different level in the CMS world.

Commerce 2.x which is the Drupal 8 version of drupal commerce. As like any other drupal developer / architect, Rakesh says “I  am also excited about Commerce 2.x”

6. How to build your Drupal 8 theme using Bootstrap & Less

This tute by looks into initiating your own custom theme using Drupal’s Bootstrap base theme. The Drupal Bootstrap base theme bridges the gap between Drupal and Bootstrap framework.

 

 

 

Download the Drupal Guide
Enter your email address to receive the guide.
get in touch