K P Turner Ltd – Director
09/2017 to 11/2017
Although only incorporated in Sept 2017 after parting company with CoralTree, I have been doing a number of things externally under this guise for several years:
Node.js/Angular: Events Management
Full stack MEAN application using MySql (instead of MongoDB), Express (sails), AngularJS, Bootstrap and node.js. Deployed on Heroku and my own Centos server.
Developed for the Masonic Province of Hampshire and Isle of Wight to manage events/bookings. The UI is designed for be easily usable for all ages (people in their twenties to people in their nineties) and therefore functional as opposed to stunningly beautiful and full of eye-catching graphics.
It works on a smartphone, tablet or desktop (responsive). The node.js back-end uses Express (actually the Sails.js wrapper) makes full use of csrf for security. Authentication is handled using passportjs (http://www.passportjs.org/docs) which exposes Social Media authentication via Facebook, twitter, Google+ etc or direct APIs like OAuth, Oauth 2.0, Bearer, or simple user name
and password combos. The GitHub repository is here.
The application can be seen here.
A test version: http://test.squareevents.org.
Please be aware that registering to use this application will only show you the public facing features, not the full administrative features (although this can be arranged).
The application is also used by the Province of Surrey, The Masonic Trout and Salmon Fishing Charity and the H&IoW Provincial Grand Stewards Lodge.
Currently undergoing an Angular 5 rewrite.
Node.js/Sails/Express: Chromis
GitHub (https://github.com/kpturner/chromis). Chromis is a back-end application framework designed to transact JSON data model(s) with any client (e.g. Angular 1,2, 4 or 5) or the CoralTree proprietary Renaissance UI engine using HTTP (XmlHttpRequests) and/or web sockets.
Chromis is completely platform agnostic and is loosely based on sail.js which in turn is a wrapper for express.js. Chromis is designed to serve multiple database instances and uses an ORM called Waterline to seamlessly enable the Framework to switch between (for example, PostgreSQL, MySql, MongoDB – in fact any database supported by Waterline).
For scalability the framework will start and manage back-end servers to handle requests and communicates via a redis based message bus called busmq (https://github.com/capriza/node-busmq).
Session management is handled either via redis or JWT – the latter being the preferred default.
Node.js/socket.io: Web socket server
A node.js application/server designed to provide web-socket services to any client – similar to commercial products like Lightstreamer but much more light-weight.
This implementation is predominantly designed for the IBMi platform and expects “events” to be enqueued for broadcast on data queues by legacy back-end applications. It is in use in conjunction with a CoralTree Renaissance application in Germany serving over 5000 concurrent call centre agents.
GitHub: https://github.com/kpturner/kpt_ws
Consultant to Zentive Ltd
Zentive have me on a retainer to provide emergency support (on a best endeavour basis) for all aspects of their IBMi server should I be needed.
Other
Some smaller projects using React, but as these are not yet commercially used applications I have not listed it as a key skill.
For all my projects I am using Mocha for a TDD/BDD development but again, not in a full blown commercial environment.