What is a CMS? Why Node.js? Joel Barna. Professor Mike Gildersleeve IT 704 10/28/14. Content Management Systems: Comparison of Tools



Similar documents
KEYSTONE JS FOR DRUPAL DEVELOPERS

ICON UK 2015 node.js for Domino developers. Presenter: Matt White Company: LDC Via

Drupal CMS for marketing sites

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Create e-commerce website Opencart. Prepared by : Reth Chantharoth Facebook : rtharoth@yahoo.

MEAN/Full Stack Web Development - Training Course Package

This installation guide will help you install your chosen IceTheme Template with the Cloner Installer package.

Word Press Theme Video Stream Apptha

The Learn-Verified Full Stack Web Development Program

Getting Started with Web Hosting at TechServ

Avaya Inventory Management System

The Web Pro Miami, Inc. 615 Santander Ave, Unit C Coral Gables, FL T: info@thewebpro.com

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

DreamFactory & Modus Create Case Study

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

How to FTP (How to upload files on a web-server)

Working with Structured Data in Microsoft Office SharePoint Server 2007 (Part1): Configuring Single Sign On Service and Database

Shop by Manufacturer Custom Module for Magento

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

CS396A UGP Presentation. Dr. Prabhakar T.V

Intel Internet of Things (IoT) Developer Kit

Building and Deploying Web Applications

Using Internet or Windows Explorer to Upload Your Site

Ruby on Rails Secure Coding Recommendations

StriderCD Book. Release 1.4. Niall O Higgins

Open Source Content Management System for content development: a comparative study

How to Configure a Stress Test Project for Microsoft Office SharePoint Server 2007 using Visual Studio Team Suite 2008.

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

HP Operations Orchestration Software

SharePoint Integration Framework Developers Cookbook

SUHAIL DAWOOD Toronto, Ontario

ekomimeetsmage Manual for version 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0

5 Mistakes to Avoid on Your Drupal Website

ShopWindow Integration and Setup Guide

E-Commerce Installation and Configuration Guide

SOS SO S O n O lin n e lin e Bac Ba kup cku ck p u USER MANUAL

Sisense. Product Highlights.

White Paper On. Single Page Application. Presented by: Yatin Patel

Step 4: Click Upload >> Browse for zip file, then click Install Now. Step 6: List Eruption should show up as a new button in your Wordpress Navigation

How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers.

Extending Remote Desktop for Large Installations. Distributed Package Installs

Hadoop Data Warehouse Manual

Build it with Drupal 8

SECURE MOBILE ACCESS MODULE USER GUIDE EFT 2013

Qlik Sense Enabling the New Enterprise

Why NoSQL? Your database options in the new non- relational world IBM Cloudant 1

Global TAC Secure FTP Site Customer User Guide

Google Trusted Stores Setup in Magento

How to install phpbb forum on NTU student club web server

How To Use Titanium Studio

PRiSM Security. Configuration and considerations

Website Builder Documentation

Ashgate FTP Web Login

Web Developer Toolkit for IBM Digital Experience

Benjamin Carlson Node.js SQL Server for Data Analytics and Multiplayer Games Excerpt from upcoming MQP-1404 Project Report Advisor: Brian Moriarty

Learning Web App Development

NetBeans IDE Field Guide

IBM Script Portlet for WebSphere Portal Release 1.1

Google Analytics Playbook. Version 0.92

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

IIS, FTP Server and Windows

Bubble Code Review for Magento

JBoss Portal 2.4. Quickstart User Guide

October, Install/Uninstall Xerox Print Drivers & Apps Best Practices for Windows 8, 8.1, and 10 Customer Tip

MAGENTO Migration Tools

Freshservice Discovery Probe User Guide

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Workshop on Using Open Source Content Management System Drupal to build Library Websites Hasina Afroz Auninda Rumy Saleque

FORM SIMPLICITY QUICK REFERENCE GUIDE PROFESSIONAL/ULTIMATE EDITION

Content Management System

Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide

Content Management System User Guide

Software Development & Education Center PHP 5

Design and Functional Specification

THE PLAN FOR TODAY. Welcome to Camp Tech!

The easy way to a nice looking website design. By a total non-designer (Me!)

Content Management Systems: Drupal Vs Jahia

Cloudera Manager Training: Hands-On Exercises

ADMINISTRATOR GUIDE VERSION

18.2 user guide No Magic, Inc. 2015

JavaScript Programming

Scott Moore, Esri April 4, Intermountain, Great Falls, MT

Alinto Mail Server Pro

Kollaborate Server Installation Guide!! 1. Kollaborate Server! Installation Guide!

Cloud Powered Mobile Apps with Microsoft Azure

Web Development. How the Web Works 3/3/2015. Clients / Server

Producing Listings and Reports Using SAS and Crystal Reports Krishna (Balakrishna) Dandamudi, PharmaNet - SPS, Kennett Square, PA

Testing and Deploying IBM Rational HATS 8.5 Applications on Apache Geronimo Server 3.1

Lucy Zhang UI Developer Contact:

Enterprise Apple Xserve Wiki and Blog using Active Directory. Table Of Contents. Prerequisites 1. Introduction 1

SOA Software API Gateway Appliance 7.1.x Administration Guide

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC

Oracle Service Bus Examples and Tutorials

Sitecore InDesign Connector 1.1

LogMeIn Network Console Version 8 Getting Started Guide

Exclaimer Mail Archiver User Manual

Mage AW Blog Integrated Search

Transcription:

Joel Barna Professor Mike Gildersleeve IT 704 10/28/14 Content Management Systems: Comparison of Tools What is a CMS? A content management system (CMS) is a system that provides a central interface for creating, deleting, editing, and organizing content on a website. The CMS contains two essential parts: A Content Management Application (CMA) which an administrator will interact with, and a Content Delivery Application (CDA) that updates the website and serves dynamic content to a user. Content management systems are an essential part of modern web development because it creates an abstraction layer away from the underlying code. First built for bloggers who wanted to create articles online without modifying the website s code, CMS have since been improved to allow many different features. Listed below are the features of CMS that one should consider when shopping for one and the available CMS for a backend node.js web developer. Why Node.js? The most convincing reason to choose node.js as a backend language is to provide simplicity across web development. Using Node.js allows a developer to use JavaScript syntax when developing a backend application. Most web developers will have an understanding of JavaScript when building the front end of a website, so it is not much of a step to learn the ins and outs of Node.js. In addition to the syntax of JavaScript, another compelling reason for Node.js is because all of your data is able to be represented in JSON (JavaScript Object Notation) format [1]. Instead of having to transform the

representation of your client s JSON data to a specific language s data types, the developer is able to consistently use JSON. Lastly, Node.js uses an event- driven asynchronous model that resolves to a non- block input/output server. Node.js is run entirely on one thread, so multi- threaded baggage that comes with different server- side languages that can slow down a server is not an issue in Node.js. That being said, if large amounts of computation is put onto the one thread, server responses will slow down. Node.js is best for server- side web applications without CPU intensive computation. Content Management Systems for node.js From the list of nine content management systems I found during the survey of tools, I picked three to analyze and compare: Keystone.js, Cody CMS, and Ghost. Keystone.js Known as the best CMS available for Node.js [2], it provides a strong backbone for a simple content management system. Keystone.js is available for free and sits under the MIT license. In addition, there are sixty four contributors to the open source repository and daily commits. Keystone.js runs with two of the most powerful elements of Node.js: Express.js and MongoDB. Express.js is the most popular web application framework for Node.js and MongoDB is a document based database whose queries are written in JavaScript notation. Learning to use both Express.js and MongoDB alongside Keystone.js will allow a user to progress and create web applications in Node.js without Keystone.js. In addition to using popular frameworks with Node.js, the content management system is also built upon an MVC architecture. Learning this Model- View- Controller Architecture will allow a user to take principles away from Keystone.js and apply them elsewhere in future applications. There are some key features of Keystone.js that stand out as needed features of a CMS. The CMS comes prepared with standard data types such as name, email and password which can be easily

incorporated into online forms to speed up validation and database storage. Keystone.js provides an out- of- the- box Admin User Interface which represents the custom fields and content- types created by the user. A user can easily use this to build a website from the ground up, or use this as a CMS during production. Lastly, Keystone.js provides natural integration with email. It provides a template email system and incorporates integration with MailChimp, a leading mail service for web applications. Cody CMS Being built by Belgians, Cody is multi language from the start. The best part about Cody is that it is built to run right out of the box. Unless there needs to be some customization, Cody provides many online features through the admin tool to get started. For developers, Cody uses the familiar MVC architecture to handle requests, control them, model the data, and create views for the client. One of the striking features I found from Cody was the simplicity of the system. From the website, the entire system is built upon a structure of /[language]/[pageid]/[request]/[id], with default values for missing components. Once the pageid is found within the system, a context object is created to contain all the information about the current request for that page. Each pageid has a linked controller, and then once the controller is called to modify the response, the context is passed onto the view which renders the template dynamically to the client. Lastly, while Cody CMS seems to have a strong base, there are spots where the documentation is not completed. Ghost Ghost is advertised to be a blogging platform and it does just that. Ghost has 171 contributors on their open source GitHub and is continuously in development. In fact, I just got an email about their most recent release just yesterday. The installation of Ghost is incredibly simple. Once Node.js is installed, there are only five simple steps to run it locally: 1. Download ghost zip file from https://ghost.org/download/ 2. Open command prompt / shell in ghost directory

3. issue the command npm install - - production 4. issue the command npm start 5. Open your browser to localhost:2368/ Once you enter your credentials and information into the web prompt, your blog will be up and running. The admin interface for ghost is impressive and contains a markup on the left side of the screen with the rendered blog post on the right side of the screen. Changing themes for Ghost is incredibly easy as well. All you have to do is drag the folder containing your theme to the content/themes folder and select that theme in the online administrator interface. There is a large support for themes and there are even many free themes available. To get a jumpstart on Ghost, visit ghostforbeginners.com and start your own blog today! Conclusion Keystone.js and Cody CMS are two of the best content management systems for the backend Node.js language. From the information I could find online, Keystone.js is the best content management system available for most website s requirements. Cody CMS could be utilized if there is a strong need for multi- language support, but seems to fall in the shadow of Keystone.js. Lastly, Ghost is one of the best CMS blogging platforms available. The event- driven Node.js system is perfect for a blogging platform as there is no heavy computation for the web application.

Resources 1. http://www.toptal.com/nodejs/why- the- hell- would- i- use- node- js 2. http://waitingfortheelevator.com/a- review- of- node- js- content- management- systems/