Automated REST API testing with Chakram

Every business nowadays relies on integrations through REST APIs. It can actually be very costly to not realise when your integrations stop working due to an undetected API issue. Might those API be internally developed and maintained or external API totally out of your control (eg: a bespoke company facing knowledge sharing system, a special dashboard your executives require to monitor daily, your cloud ERP, CRM and accounting software etc.).

When building any software project and its integrations, it is essential to know that the various components of the application can safely rely on fully tested and working back-end APIs. This is especially true when the components might change and quickly evolve over time. The solution to this problem is pretty simple: you should make sure your API’s business logic has fully automated regression testing, so that you know what can break, before every new release.

Read more

Arduino Temperature Driven Fan

Schema of Arduino controlled two speeds fan with LCD
Schema of Arduino controlled two speeds fan with LCD

This project is about driving a two speed fan with an Arduino, based on the environment’s temperature.

The project has been designed to help automating an existing fire-based heating system. The idea is that the environment will be warmed faster, by driving heated air into the room with a multi speed fan, while the fire is hot and the surrounding environment not yet.

I wanted to make it a little more interesting by adding a LCD display to show temperature, humidity and fan status, and four buttons to increase and decrease the two temperature values that drive the fan speeds.

Arduino Prototype of Temperature Driven Fan
Arduino Prototype of Temperature Driven Fan

When the temperature is below the lowest temperature threshold, the fan will be running at full speed. With temperatures between the lowest and the highest threshold the fan will be running at half speed and with temperatures above the highest threshold the fan will be off.

This project demonstrates the use of an Arduino (or compatible) micro controller with a temperature and humidity sensor to drive outputs, it demonstrates the usage of a LCD display, push buttons and EEPROM memory storage.

Read more

Sugar 7 – Setup a Development Environment

Build a Sugar development VM using Debian 7.8

This post is supposed to guide through the setup of a VirtualBox virtual machine for local development of Sugar 7.5.x. The OS of choice is Debian 7.8 as it is my personal preference for server setups and it currently fits all the software requirements of Sugar without much additional manual work.

Read more

How to drive a small motor at different speeds using an Arduino

Control motor speed with Arduino
Control DC motor’s speed using Arduino

For one of my projects I needed to drive a small motor at different speeds, so I gave this a go by reading and learning more about what is required.

We can achieve that with an Arduino microcontroller by using PWM signals. For this project I am using an Arduino Mini clone, and decided to drive the motor with a N-Channel MOSFET (voltage controlled transistors), activated by a PWM signal.

PWM Duty Cycle
PWM Duty Cycle – Source Wikipedia

Keeping the frequency of the signal constant, and varying the width of the “on” time vs the width of the “off” time (changing the duty cycle), will make the motor spin at different speeds.

The signal values that Arduino expects for the duty cycle is from 0 to 255 and it can be set by using the function analogWrite(pin, value). By providing a different duty cycle value to our Arduino pin (in my case PWM pin number 5), the motor will spin at different speed.

Read more

How does authentication work in Sugar 7?

Different application’s approach: Sugar 7 framework

For whoever is reading this article and is not familiar with Sugar on the most recent version 7.x of the product, it is important to note that the application’s core is now a RESTful based API.

The presentation layer is based on SugarCRM’s framework “Sidecar”, that uses quite a few Open Source libraries (including Bootstrap, jQuery, Handlebar and Backbone.js).

The framework’s MVC layer is cached/stored within the browser at the first application’s load and interacts with the REST API on every subsequent call, creating a more powerful experience as a Single Page Application.

The great concept around the newer application’s framework is that everything can now be achieved interacting with the application via API calls, if it can be done in the application by using the interface (except BWC functionality).

By doing so, the framework provides extreme flexibility and huge integration capabilities, and therefore it allows customers to build any business process around the application.

Read more

Customise SugarCRM Case assignment from Inbound Emails

Creating Support Tickets from Emails is one of the core functionalities of a ticketing system and it can hugely benefit any organisation if the ticketing system is directly part of the global CRM implementation.

SugarCRM since the early days has included on any version of its CRM product a great functionality that is commonly used between my customers: the Inbound Email to Case creation (as in Email to Support Ticket creation).

To know more about how to set-up the functionality out of the box, for a Sugar v7.2.2.0 (latest Sugar version while writing this article), please refer to this section of the manual.

Read more