Just imagine: you update content on one of your Drupal websites and it gets automatically synchronized across your whole network! That's Drupal on Blockchain in just a few words...
Say you manage a national library's infrastructure of Drupal websites. One for each one of its local branches.
Now, here's how moving all the user data stored in there from your centralized database onto a decentralized blockchain system would benefit you:
readers get to validate their own user data since there's no central entity having full (and exclusive) control over it
once they've updated their user data on one of the library's websites, it'll get synchronized across the entire network
the well-known vulnerability to errors of centralized multi-site structures gets eliminated; there's no longer a centralized database acting as a single point of failure
the decentralized architecture speeds up any operation that gets performed across the network
you'd avoid scenarios where the same reader enters his login credentials on one of the library's websites and gets asked to enter them, once again, when accessing the website of another library branch
And I would also add: increased transparency, lower transaction costs...
But I'd better dive into more details on how Blockchain and Drupal can work together and how you can benefit from the decentralized architecture that they'd put together:
1. Blockchain: What You Need to Know About Its Potential
But first, here's Blockchain in plain words:
A decentralized shared system where multiple participants store their data, interact directly with each other, manage and keep record of their transactions.
How is it different from the “old” way of managing transactions across a network?
there's no more a centralized database for storing data and transactions; participants (nodes) store it among themselves
… this grants them total control over their own data/created content
users involved in a blockchain network get to interact with one another freely, with no need of a third-party as an intermediary
it establishes a system of rule-based transactions
each transaction — editing, deleting content, etc. — gets documented
it enhances communication between nodes/participants
transactions get carried out at higher speed and, implicitly, with fewer costs
with no central entity as a unique storage source, there's no single source of failure anymore
enhanced transparency
In short: blockchain enables you to set up a secure and immutable architecture for your network.
2. Blockchain and a New Content Distribution Model
“Transparency” is the keyword here. Decentralizing a content distribution platform would benefit both content creators and content consumers:
digital publishers become the only ones allowed to update or delete their own content
consumers pay producers directly for the content they consume (written content, songs, videos, etc.)
This way: content creators get full control over their own content — there's no platform owner who could remove it to his/her liking — and get paid fairly and in real-time, for each piece of content that gets “consumed”.
3. Drupal on Blockchain: Why, How, and With What Costs?
Why would you want to decentralize your CMS — in this case, Drupal — and store your data on Blockchain?
To answer your question, let me highlight just a few of the inconveniences of managing your content on a centralized Drupal database:
each transaction is explicit and irreversible
it poses a higher vulnerability to errors
multiple-user functionality can turn out to be a serious dread
the centralized database acts as a single point of failure: if something crashes in there, the whole system is at risk
updating content in your database doesn't automatically update it across your entire network of Drupal websites...
And how would the 2 technologies work together? Considering the fundamental differences between them:
Drupal uses a centralized architecture to manage content
Blockchain uses a decentralized, middleman-free workflow based on a verification element
Before I try to answer your legitimate question, let me ask you this:
Do you seize any similarity between Drupal's “open data” phylosophy and Blockchain's “decentralized data” principle?
Now, here's how your hypothetical “Drupal on Blockchain” architecture would look like:
it'd be a much more secure, decentralized structure (you'd remove the single point of failure, remember?)
since a blockchain workflow would use an immutable validation of data, it'll act as a guarantee that no content can get modified by other than its creator/distributor
user data/content would be easily accessible across the entire infrastructure (take the example of an enterprise-level business, running a multi-site Drupal network)
… and it'd synchronize in real-time across all your Drupal instances, as well...
transactions performed within this architecture would be rule-based: every single content update or removal will get documented
“But at what costs?” you might ask. What compromises would you need to make to run Drupal on Blockchain?
What challenges should you get prepared for?
Here are 2 potential “dares” to ponder upon:
first of all, integrating your current Drupal data into a blockchain system won't be quite a “piece of cake”
secondly, getting the consensus of all the participants (say users whose data would be easily accessible network-wide) is also a serious issue to consider
4. Drupal Development Efforts in this Direction: The Blockchain Module
This duo — Drupal and Blockchain — has generated quite a lot of talk these years. And quite a handful of promising initiatives and even prototypes have been presented (integrations with Etherium and bitcoin...)
From all these initiatives of the Drupal community, I've decided to put the spotlight onto the Blockchain module (not yet covered by Drupal's privacy policy).
Take it as a “scaffolding” to support your future “Drupal on Blockchain” architectures. It provides the functionality you need to:
set up your Drupal installations as blockchain nodes; ”nodes” that are independent, meaning they can get configured independently
ensure that your newly set up nodes are compatible with each other
The END!
This is the “why, how and at what costs” of this topic. One which has been on the lips (and on the Drupalcon slides) of members of the Drupal community for quite a while now.
What do you think?
Would such a decentralized Drupal on Blockchain architecture suit your own project's needs and constraints? Would you trade your central point of storage for the convenience of automated content synchronization?
Photo by Clint Adair on Unsplash
RADU SIMILEANU / Jun 28'2019
"What are some of the biggest companies using Node.js?" Some Node.js applications trafficked by... millions of users, on a daily basis, processing huge loads of data in record time...
Those globally-known projects that are currently leveraging this JavaScript runtime's most powerful advantages: top performance and unmatched scalability...
A legitimate question to ask yourself if you're toying with the thought of creating your own project on Node.js these days.
In this respect, here are 4 such global players who've switched over to Node.js to get inspired by:
1. LinkedIn
The business-oriented social network, with over +450 million members, has been one of the first global players to feature a mobile app backend built entirely on Node.js.
Why Node.js?
because it scales like no other
because it outshines Ruby on Rails, the technology that the company switched from, from a performance standpoint
because it's the best for calling other services; and it was critical that their app should communicate seamlessly with their database and the platform API
Main benefits for using Node.js:
they doubled their traffic capacity
they speeded up the development process: both front-end and back-end mobile developers can now tap into their JavaScript skills and merge into one single team
they've freed their resources, reducing the number of servers from 15 to... 4
they've boosted their app's performance on the client-side; it now runs up to 10 times faster
2. Paypal
200 million users, transactions in +100 currencies...
Now, that says something about Node.js's built-in capabilities to withstand huge amounts of traffic and to overcome major data processing challenges.
No wonder that this globally-known online payment service is now featuring a client-facing side web app on Node.js.
Why Node.js?
because it enables development teams to use the same language, JavaScript, for both the browser and the server
… and this speeds up the development lifecycle dramatically (removing the need to use Java, on one hand, and JS, HTML, CSS, on the other hand)
Main benefits for using Node.js:
they've built their application 2 times faster
it's one of those Node.js applications that's got significantly lighter; it now includes 40% fewer files and 30% less code
the “new” network app now serves twice as many requests per second
3. Netflix, One of the Highest Traffic Node.js Applications
Netflix's user interface is the perfect example of how Node.js's built to cope with massive loads of traffic and data-intensive streaming scenarios...
In short: you have a global streaming service, a heavy network infrastructure of 130 million users, with its server-side rendering powered by Node.js.
Why Node.js?
because it simplifies and streamlines the whole development process: developers now get to use JavaScript for both client-side and server-side coding
because it ships with a rich collection of modules for any functionality they might need to implement
because it's just... fast; speed and load time sure are some critical aspects to consider in case of a high traffic video content provider like Netflix
Main benefits for using Node.js:
a modular, lightweight and fast application: load time has been reduced by 70%
they've cut down their build times dramatically (with JavaScript now being the only language used for both the back-end and the front-end of their app)
user customization is now possible
Note: Netflix's UI is, no doubt, one of the most successful Node.js projects out there and it's not just their app's skyrocketing popularity that confirms it, but the company's own intention to move their data access layers to Node.js, as well.
4. Uber
Connecting drivers and passengers worldwide, the ever-growing online transportation network dependeds on a system with outstanding data processing capabilities.
And Node.js excels at I/O-intensive tasks...
Why Node.js?
because it scales like no other, coping with an increasing demand for mobile taxi services
because it's designed to support distributed systems sending a heavy load of network requests
because it gets constantly and continuously upgraded by its dedicated open source community
because it's built to process massive amounts of data in record time, risk-free
because it provides quick error analysis and almost instant code deployment; programs get scanned through and new code deployed in... no time
Main benefits for using Node.js:
Uber is one of those Node.js applications processing +2 million remote procedure calls within one second; even when challenged to withstand high spikes of traffic...
The END!
Are these heavy-weight names convincing enough? Are these 4 large scale and top performant Node.js projects inspiring enough for you?
Photo by Marianne Krohn on Unsplash
Adriana Cacoveanu / Jun 25'2019
This is no news anymore: preparing to upgrade to Drupal 9 is just a matter of... cleaning your website of all deprecated code.
No major disruption from Drupal 8. No more compatibility issues to expect (with dread)...
“Ok, but how do I know if my website's using any deprecated APIs or functions? How do I check for deprecations, identify them and then... update my code?”
2 legitimate questions that must be “haunting” you these days, whether you're a:
Drupal 8 website owner
developer currently working on a Drupal project
Since the great news of this smooth Drupal upgrade ships with the answer to your “What” question (“What do I do to get my website ready for Drupal 9?”), but leaves the “How” question open:
“How precisely do I check my website for deprecated code?”
Are there any analysis tools available? Tools that you could run to get a thorough and accurate deprecated code report?
Luckily, there are. And I'll be focusing on 2 of the most effective ones that you should consider integrating into your workflow: Drupal Check and the Upgrade Status module.
1. But What Is Deprecated Code? And What Website Elements Should You Audit?
A piece of code is considered deprecated if:
there's an upgraded alternative for it already available
it's no longer in use
With this real “dilemma” now solved, there comes another one:
“What parts of my website should I check for deprecated code?”
Make sure you scan your:
Drupal core
Drupal modules
theme
Note: pay special attention to the contributed modules enabled on your Drupal 8 website; run a deep-scan and, if you get any deprecation warnings, make sure to alert those modules' maintainers to clean them up.
2. Drupal Check: Scan Your Database for Any Deprecations
A handy PHP analysis tool to grab and to run whenever you need to look for deprecated code in your database.
A command-line tool that Dries Buytaert recommends running the... automated way, closely integrated into your own workflow. What it'll do is track down instances of deprecated code for you.
Then, all there's left for you to do is to... remove them. And, depending on the context, to replace them with their upgraded alternatives.
3. The Upgrade Status Module: Determine Your Site's Readiness to Upgrade to Drupal 9
If the idea of working with a command line doesn't sound too... “tempting” to you, how about adding a user-friendly graphical interface to the equation?
The Upgrade Status module, delivered to us by the Aquia team, led by Gábor Hojtsy, makes checking for deprecated code a lot more enjoyable and intuitive, thanks to its admin dashboard.
It's particularly handy if you're a Drupal site owner and not a senior Drupal developer highly familiar with CLIs.
Install it, enable it and use it to evaluate your website and to assess to what degree it is ready (meaning up to date) for the Drupal 9 upgrade.
But let's delve head first into details on:
what it takes to install it properly
what parts of your website it will deep scan
how you can narrow down its analysis to specific projects only
3.1. Use the Composer Package Manager to Install It
Since it ships with its whole collection of third-party PHP dependencies...
Another key requirement to set the stage for the Update Status module is to enable the Update Manager and the Git Deploy modules on your Drupal 8 website.
Once installed, you can access its user interface at /admin/reports/upgrade.
3.2. Check Up Your Codebase, Modules, and Themes
The great thing about this module is that you get to run your checks right in your admin UI and get a full report.
Another great aspect is that, when it comes to contributed modules, it will provide you any available updates... inline.
Once it's completed its scan it'll display either an “Errors found” or a “No known errors” message. To localize the identified deprecations on your website, just click “View errors”.
3.3. Run It on Specific Individual Projects, Too
Maybe you don't always need a full check. Maybe you'd like to scan only a specific project that you might be working on, to ensure that it's ready to upgrade to Drupal 9 when due time.
You can do that. The module allows you to cut down the time you'd spend on an unnecessary full-scan by focusing on one target project only.
Furthermore, to streamline things even more, it enables you to export each deprecated code report individually...
4. So, You'Ve Identified Your Deprecated Code: What Next?
In most cases, keeping your codebase up to date once you've detected the deprecated parts is just a matter of replacing those deprecations.
For the other few cases left, you'll need to carry out a more complex refactoring process.
Now that you know which are the tools to use for:
running your audits
spotting any deprecations in your codebase
… your website's smooth upgrade to Drupal 9 depends on you exclusively.
On sticking to your own routine of checking up your Drupal core, modules and theme and keeping them up to date.
Image by fajar budiman from Pixabay
RADU SIMILEANU / Jun 21'2019
What does Drupal 8 do that Laravel does not? What key functionalities, that Drupal ships with, do you need to build from scratch in Laravel? And how would opting for Laravel benefit your specific type of project? In short: Laravel or Drupal 8?
“It's like comparing apples to oranges” some might say since one's a framework and the other one a CMS.
Even so, if it's unclear to you what are their particular use cases and their built-in features, you won't know whether it's a CMS or a framework that best suits your project type, right? That best serves your project-specific needs:
to be super fast
to leverage a solid, off-the-shelf content management system for publishing different pieces of content on the website
to feature an easy to scale database
to support multisite
to tap into robust user and content management features that are already implemented
to be built on top of a solid framework acting as a reliable back-end application
to leverage a highly intuitive admin user interface
to be 101% secure
to leverage a mixture of server and client-side logic
Now, keep your list of project requirements and constraints at hand to evaluate these 2 technologies' pros and cons against it:
1. Drupal 8: Top Benefits, Main Drawbacks, and Specific Use Cases
If a robust user and content management system is critical for your project, then Drupal 8 makes the smartest choice. It's that “thing” that Drupal excels at that, which would take you a whole lot more time to do in Laravel.
And it's not just its robustness that might “lure you in”, but the level of convenience that it provides: a lot of the essential features and functionalities that you might need are already built-in.
Moreover, you can easily manage them and custom-tune them via your admin interface...
By comparison, you'd need to build these functionalities, from the ground up, if you chose to go with Laravel.
Top benefits:
you can rest assured that your website runs on a particularly robust, Symfony-based CMS
there's a huge, dedicated community backing it up
you get to create various content types, for different parts of your website, assigned with different roles; unlike basic CMSs, that enable you to write... posts and to create new web pages
you can set up different editorial workflows and assign specific user roles, with fine-grained access control
you can always further extend its CMS-specific functionalities: extensibility is one of the strongest Drupal 8 benefits
Main drawbacks:
you do need a team of Drupal experts (senior-level preferably) to keep an eye on your Drupal 8 website/app and keep everything properly maintained
you can't get away with a “get it up and running and... move on” type of philosophy; Drupal 8 is a more of a long-term commitment: there's always a newly launched promising module to consider adding on, a new update to run...
Specific Use Cases for Drupal 8:
large-scale projects that depend on a robust and reliable content management system; one that withstands an intense, ongoing process of creating, editing and publishing lots of fresh content
Laravel or Drupal 8? Definitely the later if it's a multi-site, multi-language web project that you plan to develop; not only that it streamlines content publishing across your whole network, but it significantly speeds up localization thanks to its server-side caching capabilities
It means that no matter the place on the globe where that your users might be located, they get to access your web pages and have them loaded... instantly.
2. Laravel: Pros, Cons, and Project Types that It's Best Suited For
Laravel stands out as a highly reputed, powerful PHP framework.
If:
maintainability is one of your biggest concerns
you're looking for a robust framework
you need to carry out your project fast enough
you need a framework that ships with all the latest functionalities
... then Laravel is what you need.
Top Benefits:
a fast-growing, devoted community
you can easily integrate LDAP authentication
it leverages the Model-View-Controller architecture
it's just... fast
provides you with a great admin user interfaces
it “spoils” you with intiutive, beautifully written code
it ships with a heavy “toolbox”: scan through and pick the most suitable one(s) for your project
in-built code for social login and sending out emails
everything you might need to set up during the development process is right there, already integrated into your code: cron jobs, database queries, routes...
Main drawbacks:
more often than not identifying performance issues isn't that straightforward
upgrading to the latest version of Laravel can turn out to be quite a challenge: be prepared for “buggy scenarios” and for the need to rewrite code
you can't just jump straight to Laravel: learning the basics of OOPS first things first is a must
Specific Use Cases:
your project needs a back-end application (rather than an off-the-shelf CMS)
when the benefits of the MVC architecture (faster development process, suitable for large-scale projects, multiple views, etc.) are critical for the given project
whenever you need to mix client-side with server logic
whenever time is the main concern for you: you just need your project developed super fast
3. So... Laravel or Drupal 8?
Now, I'm sure that you already anticipate my answer:
The choice depends strictly on your project requirement and objectives.
On your own hierarchy of priorities in terms of features and functionalities.
And depending on these key aspects, that should be clearly defined, one technology will benefit you over the other.
So... what type of project are you looking to build?
Photo by Raquel Martínez on Unsplash
Adriana Cacoveanu / Jun 20'2019
Have you got the chance to apply the simple tweaks and techniques shared with you in the first part of this post? Ready now to further improve the on-site search user experience by focusing on the usability of your internal search results?
For, in vain you make your search box fully visible and usable if the options that the user gets once he/she enters his search phrase are just... irrelevant, unhelpful.
That's why in today's post we'll be shifting focus from the search box to the internal search results themselves:
What can you do, as a website owner, to ensure that your search functionality triggers the most relevant, most useful options only?
5. Improve Your Page Load Speed
“Don't make your website visitors search for the... search bar!” is equally critical as:
“Don't keep your users waiting too long for the search results to get displayed!”
Speed is crucial, so make sure you've applied all the due techniques. And there sure are a lot, ranging from common sense ones to truly sophisticated performance tweaks to keep your page load speed below... 3 seconds.
Note: If loading takes more than 2-3 seconds, just get resourceful. Display a progress indicator or a suitable animation to keep users distracted from the waiting process.
6. Prepare a Back-Up for the “No Results to Display” Scenarios
How are you planning to manage the “empty searches” situations?
For, there will be instances when there's no content on your website that could possibly match the users' search terms.
In this case, you can always apply the 2-step “emergency plan” to improve the on-site search user experience:
first, you make sure that your search functionality has scanned your entire website content: PDFs and other file formats, CMS pages and full copy here included, not just metadata, etc.
you present them alternative search options related, to some extent, to their entered queries: broad matches, contextual category links, etc.
Word of caution: providing a list including all the categories on your website or displaying top searches do not qualify as alternative search suggestions that could boost the UX.
7. Improve the On-Site Search User Experience: Add Filtering Options
Another one of the highly effective internal site search best practices is adding filters that narrow down the user's options to the most relevant ones.
For instance, you could segment their search options into “Blogs”, “Support”, “Products” etc. and thus speed up the search process.
Note: set up your analytics so you get the most of them; the most relevant data that you can then use to constantly optimize your filters
8. Leverage Semantic Search to Provide More Relevant Search Results
Tune the result relevancy and you'll improve the on-site search user experience.
In your quest for relevancy, semantic search makes your most powerful ally:
the whole process taking place “behind the curtains” will be much more than a mere keyword matching, thanks to natural language processing.
you avoid the risk of frustrating the user by returning too many search results instead of displaying the most relevant ones only
you won't convey the message that you have no regard of the user's effort to enter a specific, long-tail query
a semantic search implementation leverages a “context vs intent” formula and generates results that are 100% relevant to the user's search intent...
Note: if you can't make use of semantic search on your website, there's always a better alternative than the free text search box. For instance, you could set up a constrained search and guide the user towards the most relevant search phrase...
The END!
These are the last 4 simple techniques that you can apply to improve the on-site search user experience.
Now, to sum up the key advice that we've shared with you in this 2-part blog post:
search result relevancy should be your main goal
a well-designed UI is worthless without a well thought-through logic behind it
predictive and semantic search should be the pillars that you base your on-site search function on...
Image by Clker-Free-Vector-Images from Pixabay
Adriana Cacoveanu / Jun 17'2019
Are you using your website's search functionality to its full potential? Do your users always get the most relevant site search results? Do you think... it could be better and you wonder how you could improve the on-site search user experience?
Now, let me guess: you'd want to optimize it quick and easy, by just incorporating some simple internal search best practices into your optimization routine.
It can be done.
We've already selected 8 easy-to-apply techniques to boost the user experience from the on-site search standpoint.
But first, let's clear up a few key aspects:
optimizing the internal search user experience doesn't mean just checking that your search box gets, displayed on your targetted web pages and that it delivers some... results
opting for an on-site search tool that ships with built-in search functionality doesn't automatically guarantee you the best on-site search user experience
your implemented site search tool won't just work on its own, by default, with no “tweaking” effort from your side
In short: there's more to the user experience than the user interface (the fact that the well-designed search box gets displayed is not enough).
And in this respect, the relevancy of your site search results is key and, in order to achieve it, you need to consider the whole logic behind the UI, as well.
Now, let's pinpoint these 8 best practices that'll help you improve the on-site search user experience. They're aimed at enhancing the usability of both your search box and your search result page.
1. Make Sure Your Search Box Has a Clear Call to Action
Is the user action of your search box... self-evident? Is it obvious for your website users, the instant they land on that page, that that is a... search bar?
Now, here are a few tips to ensure that your search box does have a clear call to action:
support your text prompt with a “Find” or “Search” button or with a magnifying glass icon
pay attention to your search box's design; make sure it leaves no room for ambiguity over what role it serves
enter a placeholder text (“Find events”, “What are you looking for” etc.) in your search bar
2. Give Users Predictive Search Suggestions on Their Entered Queries
Another effective way to optimize the on-site search user experience is by giving them a helping hand with... entering the right input.
Predictive search suggestions and autocomplete drop-down menus will narrow down their search term options and speed things up.
What you can do is to make sure that:
your drop-down suggestions display “in category” search results
your autocomplete suggestions partly disclose specific content (maybe even pairing it with images, as well)
Note: in order to enhance readability, feel free to highlight the matching parts between the user's entered query and the query suggestions provided by your search function.
3. Improve the On-Site Search User Experience: Make It Visible
An apparently insignificant UI improvement like:
making your search box wider
putting it on a more visible section on a web page or even site-wide
… will definitely boost the user experience.
And here are some actionable tips for you to make your search box more visible:
make sure the input field is wide enough to accommodate a minimum of 27 characters
don't “bury” it in a hamburger menu
don't reduce it to a small, easy to miss icon
don't put it too close to boxes triggering different CTAs (e.g. the sign in box)
display it on every relevant web page on your site
And also, a few simple best practices on how to make your search box more... usable, as well:
consider triggering search interface in a separate window if your website's a multiple-category one (e.g. an online store)
consider opting for an overlay search window if you have infinite scrolling functionality implemented on your website
make sure the search bar changes its color/size when the user hovers over, just to signal its functionality
use a flashing cursor to prompt the user to enter his/her query
4. “Train” Your Search Function for Imperfect User Input Scenarios
Another basic, yet effective way to improve the on-site search user experience is by preparing your search function to handle the imperfect search queries... gracefully.
In other words, it should be perfectly adapted to deliver search results even when users enter:
synonyms
stop words
singular or plural variants
casing
numbers
misspellings
… in the search bar.
Note: remember to display the user's original misspelled phrase, as well, and to accompany it with a clear search option, relevant for his/her initial query...
END of Part 1.
Stay tuned, for we have 4 more tips to share with you on how to improve the on-site search user experience. “Tips” that address search result page usability issues, as well.
Image by mohamed Hassan from Pixabay
Adriana Cacoveanu / Jun 07'2019
“Can I use Drupal for project management?” Definitely.
Given all its content-oriented baked-in capabilities — file management, version control, easy content creation, and editing — Drupal makes the perfect software for:
managing your projects the easy and the... smart way
streamlining communication among your team members and with your contractors
In this respect, Drupal provides its own feature-rich distributions to help you put together your robust setup in no time. “Distributions” that come already packed with a set of useful sub-modules and themes, that all support the core functionality: project management (and smooth collaboration).
And without further ado, here the 2 most popular Drupal distributions for project management and team collaboration for you to evaluate first: RedHen and Open Atrium.
1. RedHen CRM
Loaded with robust and modern features, this Drupal-native CRM is designed with flexibility in mind. Meaning that it integrates seamlessly with the enterprise solution that you're using (Blackbaud, Salesforce) and it supports a wide range of use cases...
And speaking of its functionalities:
engagement tracking and monitoring
data management: information about your contacts, the relationships among them and with your own company (e.g. memberships)
event registration integration
one-page donation forms to custom-tune to your liking
As for those many use cases that this Drupal distribution's built to accommodate, let's pick just a few real-world examples:
It's the best choice if smoothly integrating your CRM with your other enterprise solutions is critical for you
It streamlines tracking interactions with your contacts and organizations. Furthermore, since you can easily integrate it with your website, you get to leverage the provided data in order to adjust the user experience accordingly...
It allows you to customize it and thus to give it a Drupal-like look and feel: to integrate it with modules like Rules or Views, to go for the same field creation UI, etc.
Is your contacts list a huge one? This CRM comes to your rescue with some powerful baked-in tools: an efficient find-and-dedupe interface, an automated filter built in the UI, that you can use to filter your contacts by specific fields, etc.
It automatically syncronizes data in your Contacts list with any newly updated data on your Drupal Users list
In short: RedHen CRM makes one of the top choices when you consider using Drupal for project management purposes. It's a lightweight, self-contained framework, more of a “cluster” of multiple specialized modules:
Organization
Activity
Fields
Organization Group
Dedupe
Registration
and a few more...
2. Open Atrium
Looking for a Drupal-native distribution built around the team collaboration functionality?
One that should be:
convenientyly extensible
“loaded” with robust collaboration and information sharing features?
Then Open Atrium fits the profile in the slightest detail.
Built on top of the Organic Groups and Panopoly modules, it's a framework flexible enough to support discussion configurations by key criteria like team, project, organization...
And here are some more powerful features worth considering when you're still thinking whether you should use Drupal for project management:
an access control system, that grants granular control to certain sections of your project
a drag and drop layout with plenty of widgets to select from for customizing your landing pages and dashboard
file storing and sharing features
built-in Events, Files, Discussions, Issue Tracking, Document Wiki
an easy to customize, responsive theme
The END!
These are but 2 viable answers to your “Can I use Drupal for project management and team collaboration?” type of question. 2 of the options available that best meet some of your main requirements when looking for a project management software:
to be easy to use
to ship with an entire collection of file management and communication features
to be flexible enough and allow quick customization and seamless integrations
Have you tried other Drupal modules/distributions built around this functionality so far?
Image by jessica45 from Pixabay
Adriana Cacoveanu / Jun 06'2019
They used to be THE norm and to dictate web designers' decisions. No one questioned their usability or long-term efficiency. Or that they would soon grow into some outdated web design trends. Deprecated conventions that, when not mocked, are now regarded as mere haunting “ghost of the past”.
A “past” where glossy buttons, flashy design, and overly embellished page dividers used to steal the spotlight.
Now, let us go against today's trend of talking about “the biggest web trends in 2019” and, instead, dig out some old UI cliches. Just to determine the cause of death so that you:
don't risk falling into yesterday's pitfalls in terms of web design once again
leverage the lessons of the past to contribute to a better future of the web
1. The Flash Menu
Remember those “glory days” of the... flashy web?
There was sound pretty much everywhere on a web page, animated buttons, interactive elements. And there were fancy flash menus, of course.
All web designers used to take “flashy” and “animated” for... “user engaging”.
The causes of death:
applying any changes to a flash menu was discouragingly challenging (you couldn't get away with just editing a text file)
it had a negative impact on the website's SEO; crawling those flash files was “mission impossible” for the search engines
it wasn't mobile-friendly
it had poor loading times
it had to be installed into the browser
plugins had to be updated constantly... frequently
2. The Frame, the Elder “Cousin” of Today's iFrame
Now, let's turn back the hands of time and “freeze” it right at those days before tables stepped into the spotlight. What did we use for basic layouts back then?
We used frames...
Which are now no more than another one of the outdated web design trends that, well, it's not worth resuscitating. Back then, we didn't have JavaScript to overtake the burden of loading data, so web browsers had to do all the heavy work.
The causes of death:
they would compromise the browser history and break the back and forward buttons
copying and pasting links to web pages on the same website was a dread
they would enable the web browser to partly update a page instead of loading a brand new one
reloading a website would, more often than not, mean no more than guiding the user back to the exact front page
3. The Table Layout, One of Those Outdated Web Designs Trends to... Bury
OK, maybe there's no need to “mourn” over this dead UI convention, but we can't just overlook its massive contribution to... the evolution of web design.
Image source: Genealogy Web Creations
Back then, when the table-based layout trend emerged and stole the spotlight, it opened a whole world of possibilities:
It empowered us to structure our web content by breaking it into multiple columns and rows.
Surprisingly enough, that mix of GIF files and inline styles did manage to glue those layouts together.
The causes of death:
it wasn't responsive
<div> tags and classes came to... seal its faith
CSS, “tempting” us with floats, stepped on the stage of web design
4. The Border Ornament and Decorative Page Divider
The overly embellished page separators are another “once a norm, now just one of the outdated web designed trends”.
Image source: Image by Karen Arnold from Pixabay
In its “glory days,” it was our only option to split chunks of text on our web pages. And since the <hr> elements looked a bit too... dull, we went to the other extreme and started using these overly embroidered GIF separators to section our web pages.
Separators which, at first, were no more than some horizontal bars. Until web designers fell prey to the urge of gilding the lily.
The causes of death:
the heavily ornamented borders ended up diverting users' attention away from the essential: the text itself
CSS/CSS3 eventually stole our attention, as web designers
divs and classes made the segmentation of a web page much more... fluid, with no impact on the overall user experience
5. The Blinking Marquee
There was a time, way before image sliders gained their bad reputation when we would have text just... slide across web pages, from right to left.
What made this “sliding” possible? HTML's marquee tag, the equivalent of Internet Explorer's <blink> tag...
The causes of death:
it distracted website visitors from the core message
it affected SEO, since it only displayed partial information to search engines
it was an unnecessary artifice in most cases, for it carried minor information and it was the main “culprit” for a high cognitive load
6. The Image Button
Another one of those outdated web design trends dating back to early 2000, when “flashy”, “cluttered” and (most of all) “fancy” were the best adjectives to describe web designers' work.
And the glossy, 3D-looking image-based buttons created in Photoshop were fancy, alright! Where do you add that they paired with custom-made, animated cursors, as well.
The causes of death:
with text “carved” into the image, buttons were too difficult to manage, too difficult to apply changes to
they weren't responsive (they would get “partially responsive” and that only after a lot of hard work)
CSS3 came to... bury it for good
The END!
These are the 6 most representative UI conventions for the early 2000s that have gradually turned into some outdated web design trends.
Or, better said, into “learning materials” on the old/wrong ways of designing for the web and how they influenced today's UI design best practices.
Image by Mudassar Iqbal from Pixabay
Silviu Serdaru / Jun 03'2019
On one hand, you “crave” improved site performance, improved checkout process, improved scalability, and all the other improvements that Magento 2 “seduces” you with. On the other hand, just the thought of risking to compromise your data, your Magento extensions or the various customizations in your store simply... paralyzes you. It's obvious: you need a bulletproof, actionable, and 101% safe plan for migrating from Magento 1 to Magento 2...
A step-by-step guide to:
reduce some of the intimidating complexity of the process
secure each one of its phases (from the preparation phase to the data migration phase... all the way to deployment)
streamline it
Well, here it is: the 7-step migration roadmap that you need to safely and efficiently structure your Magento 2 migration process.
1. Evaluate Your Current Implementation and Try to Estimate Your Migration Effort
The first step to take in the preliminary part of your plan is to review your Magento 1 implementation.
Start by assessing your current environment and setting it against this list of Magento 2 software and hardware requirements:
PHP: 7.0.13+ or 7.1.x
+2G of Ram
MariaDB 10.0,10.1,10.2 or Percona 5.7 or MySQL: 5.6, 5.7
PHP extensions: soap, curl, mcrypt, gd, iconv, PDO/MySQL, openssl, intl, ctype, bc-math, libxml etc.
Next, take some time to analyze your current e-commerce store's provided user experience, extensions, configurations...
Then, reflect on the following key questions:
How many storefronts and domains are included in your Magento 1 architecture? Needless to add that moving a highly customized multi-site infrastructure is going to be a lot more challenging than migrating a single store...
How large is your current store (run an inventory of all your products, users, attributes, orders, categories)?
How bulky is your ecosystem of third-party extensions, Magento core customizations, custom themes, various integrations (CRM, ERPs)?
It's only after you've performed an in-depth analysis of your current online store (or multi-store) that you can roughly estimate the migration complexity.
Word of caution: remember to backup your Magento 1 online store (secure your folders, database, and files) and to always migrate data from your cloned database instead of transferring it straight from your live online store...
2. Make an Inventory of Your Extensions: Search for Similar Versions in Magento 2
And this step makes a perfect opportunity to... declutter:
Run an inventory of all the extensions on your current e-store and decide which ones are to be kept and which of them you should let go of...
Next, divide your “pile” of extensions into 3 categories:
Magento 1 extensions with corresponding versions in Magento 2
Magento 1 extensions with third-party alternatives instead
Magento 1 extensions that were custom-built for your current store, that you now need to rebuild
Run a 1:1 analysis and identify the extensions, themes and custom code on your e-commerce store that are compatible with Magento 2...
3. Migrating from Magento 1 to Magento 2: Choose the Right Migration Tool
In this respect, the Magento 2 data migration tool is a highly reputed one. It will greatly streamline the whole process, but do keep in mind that:
you'll still need to write custom code to seamlessly merge data into the new platform
you'll need to adjust your custom code to fit in; for instance, tables and columns aren't considered standard dataset in Magento 2
Note: now it's the best time to reconsider your third-party extensions. Do they really compensate for all those data entries and product parameters that they injected into your Magento 1 store?
If you still consider them relevant and valuable enough to be moved over to your new Magento 2 store, you might want to consider the Magento 1 to Magento 2 code migration tool for this.
4. Migrate Your Theme
And this will be possible only if:
your current Magento 1 theme is compatible with Magento 2
there is a version of your current theme available in Magento 2
If not, if you've been running your e-commerce website on a custom theme, let's say, then you can either:
create a whole new theme from the ground up
purchase a Magento 2 theme
Note: this is also that step of your “migrating from Magento 1 to Magento 2” roadmap where you integrate your new online store with your key corporate systems.
5. Migrate Your Extensions
As already mentioned, there are 3 possible actions that you can take regarding your current load of extensions:
check whether they have Magento 2 counterparts
if so, incorporate those Magento 2 versions into your new store
if not, integrate some brand new extensions, that provide the same or similar functionality
6. Migrate Your Code Customizations
Rely on the Code Migration toolkit for this and let it do all the heavy lifting that the code migration process involves.
Word of caution: after you've let it perform its function, remember to go back and focus on all those files that need manual editing.
7. Migrate Your Data
As already mentioned, the Magento 2 Data Migration Tool is one of your most reliable “allies” in migrating from Magento 1 to Magento 2.
And I'm referring here to the orders stored in your store, products, settings and configurations, categories and so on...
How do you use it?
It's no more than a 5-step process:
Use Composer to install the tool
Enter your authentication keys (Magento Marketplace > Sign in > Click on My Access Keys) or generate a new pair
configure your tool
migrate your Magento 1 store's settings (system/store configurations, shipping, tax settings...)
Migrate your data by entering this command: php bin/magento migration:data --reset <path to your config.xml>
Next, it's testing time: test, test, test, then... test some more! Check whether your new Magento 2 store works properly.
Make sure you run your performance analysis and optimization process on real data. This way, you can check whether the actual Magento 2 store is capable to withstand real-life loads of data...
Also, do keep in mind to update the existing data with the newly added one before deploying your Magento 2 store. And that because at this point you might end up with identical data: identical products, users, categories...
Once you've fixed this issue, you only need to pick the right time — preferably not the “peak traffic” hours on your website — to launch it...
The END!
Have I missed any key step(s) that anyone migrating from Magento 1 to Magento 2 should take?
Get in contact with our team of Magento 2 experts in Toronto and complete your migration!
Image by Ross Mann from Pixabay
Silviu Serdaru / May 31'2019