Introduction
This article gives a brief overview of the particular technology setup used by a small UK charity.
It might be a useful case study, inspiration or a model to follow by others who find themselves in a similar situation.
This article is generally written at a very high level. It might be a bit too vague for many CodeProject readers, yet too complex for general ones. So be it! I just hope it helps someone.
If it proves popular, I will write more specific articles on the details.
Background
The Squad is a charity based in Merton, South West London. We provide two evening clubs for people with learning disabilities, one for 13-25 year olds and the other for over 25s. We employ three part time paid staff to run the clubs, with everything else done by volunteers, including the board of trustees.
We have some particular needs reflecting our specific beneficiaries (people with learning disablilities). However, our basic organisational needs are similar to many small charities in the UK. So I hope that others might benefit from this case study, whether their charites do similar things or something completely different. I think some of this could equally apply to conservation charities, railway preservation societies or whatever.
I should introduce myself here. I'm a Software Engineer, with a day job at a large international company. I now specialise in the .NET stack and more recently developing web services and batch applications in .NET on AWS. As such, I have more technical knowledge than the average charity trustee, which I have been able to bring to my role on the board. Perhaps you are reading this as an "IT trustee" who has joined a board of a charity whose cause you are passionate about. You have ideas about some of the things you could bring to help, but perhaps feel a bit overwhelmed by choice or that your professional skills may be too narrow.
Our Characteristics
This is what we look like as a charity:
- Annual turnover of less than £30k.
- Three paid members of staff (all part time - less than 15 hours per week).
- An administrative workload spread over more than 10 people, mainly volunteers.
- Some of our service users ("members") provide input into our administration and data collection.
Functional Requirements
Here are the basic things we need to have or to be able to do:
- A domain name (thesquad.org.uk)
- Host a website at this domain (i.e. http://www.thesquad.org.uk)
- We want this website to be easy to create content for; and we want it to be simple enough for our service users to be able to contribute to it.
- Have email accounts on our domain (e.g. enquiries@thesquad.org.uk)
- Keep track of relevant details about our service users, volunteers, trustees, emergency contacts and so on.
- Ideally accessible from anywhere, as a secure web application
- Store all our documents somewhere secure, but easy to access.
- Documents include anything from policy documents, to meeting minutes, reports, attendance information, fundraising submissions, "how to" guides, and much more.
- Keeping information available to all those with a need to access it, along with encouraging a culture of recording information and succession planning is key to distributing the workload evenly among volunteers. Without this, some individuals can feel overwhelmed and unable to hand over responsibilities to and get help from others.
- Monitor who has undergone criminal records checks (for safeguarding) and plan for regularly renewing these as per our policies.
- We need laptops both for staff use, and use in activities with our service users.
- We also need peripheries such as a projector, audio equipment, mice etc.
- Management of our growing set of photos.
- A online platform for kind people to be able to donate to us.
- A platform to help us manage our finances.
Technology, when used correctly, can play an important role in easing the considerable burden of running a charity. Much of the administrative and management work is not co-located or co-temporal.
Our Setup
Here is what we have.
Domain Registration
We are registered with 123-reg. Domain registration costs £26 to renew every two years. Although it can work out cheaper per year to renew over a longer period, we felt that two years is a good balance between value for money and not leaving the renewal period so long that staff turnover could risk us failing to renew.
Although 123-reg offers various other services such as website hosting, we opted not to take this (see later). One very useful feature is that 123-reg do not charge extra for full DNS management (unlike our previous registrar) - this is cruicial for configuring the use of GMail for email and to point to websites hosted elsewhere
Email Service (GMail)
We were an early adoptor of Google Apps for your Domain (as it was then called) back in 2007. As a result, we have the use of free emails at our domain address (e.g. enquiries@thesquad.org.uk) which is powered by the full Gmail service. So, the web interface for accessing email is exactly the same as for free Gmail.com domain accounts.
Configuration was easy and there are good instructions on how to edit the DNS MX records (inside the console of our domain registrar). Looking again now, it seems that this is a service that Google now charges for (£3.30 per user per month), so I'm very pleased we got in when we did!
There may be free options available elsewhere (see next section). I've not investigated this, but perhaps anyone with experience would like to post this in the comments.
Technology Trust (Free or very cheap software for registered charities!)
Many companies sincerely want to help charities. They are prepared to donate software and services either for free or for a token cost.
The main way that UK based charities can access this is via Technology Trust.
You need to register with them, proving your identity and providing your registered charity number. Once that's done, you can apply for all sorts. We have benefitted from donations from Huddle and Microsoft. Some of the process (particularly for Microsoft) can be a bit confusing, but it is definitely worth it!
Document Management (Huddle)
Huddle is an online service providing many services, particularly file storage - which is what we mainly use it for.
We have one main workspace where we keep most of our documents. We have devised a file structure that suits the organisation with around 30 root level folders. The idea is that anyone should not have to click more than three times from the files page to find what they need. If a trustee is responsible for a particular area, then they "own" the folder and are able to create or delete content in the way they feel best, as the expert.
Prior to this, our organisation suffered from the ambiguities of files existing in many different places - on different computers, or in email attachments. With Huddle, documents can be versioned (with previous versions still available if required) but with no doubt on what is the latest. This allows us to work much more efficiently both now and into the future.
It also has apps for Android and iOS, and a very good integration with Windows (or Mac) and Microsoft Office.
Huddle has many features such as tasks, granular security settings and much more. It is the central point for our charity's IT so deserves more than this brief summary to describe how we use it. I hope to write a more detailed post soon.
Huddle costs £18 per user per month, so is a premium product - but available to us for Free thanks to their generous donation programme accessed via Technology Trust!
Virtual Machine (hosted on Azure)
For those not familiar, a hosted virtual machine (VM) is basically a computer, held for you in a data centre, that you can access remotely and configure as you wish.
There are many companies that can provide these. We use Microsoft's Azure platform.
We rent a single "A0" Windows Server 2012 virtual machine in the West Europe region. We pay per hour for the machine and then extra for data coming in and out. It seldom costs us more than £12 per month for this which is exceptional value! (The next instance size up has twice the memory but costs four times as much, so I suspect this is a loss leader to get people onto the platform).
In my day job, I use cloud services with lots of redundancy built in. My company would never dream of having just one VM as there is the risk that it might fail. However, as a charity, we have to justify every penny we spend. The chances of failure are relatively low. Even though the VM may go down for 10 minutes every month (while updates are installing) and this means our website may go down for a while, this seems justifyable given our low traffic.
Onto the VM, I have installed:
It hosts our main website (including its admin back office), a "staging" website (where I test updates to the website to reduce the risk of damaging the proper one), and an experimental website that our service users have been heavily involved with (hopefully this will be published to the wider world soon).
Azure gives instructions on how to edit your DNS records to point to their servers.
Given the puny spec of our VM (1 core, 0.75 GB RAM), it copes suprisingly well and is all we really need for now!
There are many other options for hosting websites (not least the Azure App Service feature). However on balance we decided to go for the single VM option as it offered us the best value, particularly as I have a lot of experience from my day job configuring Windows servers. It may or may not be the right thing for you. In any case, I hope to be able to write a more detailed article about how it was configured it and how we maintain it.
There is no hard limit on the number of websites and web applications we can install on a VM. We are currently investigating options for photo management. Although there are cloud based options out there, having our own VM means we also have the option of hosting an existing open source installation for no extra cost!
Website (built on Umbraco)
Our website is built on the Umbraco CMS platform. We chose Umbraco for a number of reasons:
- Its excellent back office, with the intuitive "Content Tree" concept
- Its complete customisation - unlike many CMSs, it does not generate its own code.
- I already have familiarity with the ASP.NET platform, so I can be productive from the start.
Umbraco can be used in many ways. For us, I created a web project in Visual Studio, then used NuGet to populate the project. Using the example code as a model, I created a simple, bare-bones website using the Twitter Bootstrap framework. The site needs further work, but this requires volunteer time and focus.
I would need another article to explain the website in more detail!
Managing Details of our people (Microsoft Access)
I created a database application back in 2005 to manage details about our service users, volunteers and others. At the time, I had a lot of experience in developing Microsoft Access applications, so used this.
Access works well for a single user on a single machine, or a team in a local office. At the time, web database technologies were in their infancy and much harder to develop than now. However, our usage now is of working in different locations.
The application has had literally hundreds of hours behind its development, so is a valuable asset and not easily replaced.
We got round the problem of needing to have secure access via the web using Huddle. We have a special Huddle workspace with membership limited only to those with a need to access the information. From a Windows PC, the user first "locks" the file (another great Huddle feature) and downloads the whole Access .mdb file. They then work on it locally before uploading it and unlocking it.
A further challenge is that a disproportinate number of the people who need to use it, have Macs. Unfortunately Microsoft does not do Access in Mac for Office! The workaround is to install a Windows Virtual machine (using the free VirtualBox software) and then installing a Windows instance, with Office. The software is all legal and licensed (obtained from Technology Trust!).
However, all these workarounds are a bit tiresome and take up a lot of time to support. For a while, I have been working on developing a web based version. I hope to report on good progress there soon!
Source Control (Visual Studio Team Services)
The source code for the website (and indeed the impending online management tool) is kept in Visual Studio Team Services. We have a free hosted private Git repository. So far, we've been able to do all we need to using the "freemium" services.
Attendance Register and Subscription Records (Microsoft Excel via DropBox)
As a charity, we have to keep good records. Attendance at sessions is the most basic data to track. We also charge service users a subscription of £2 for each session (it helps cover costs - and anyone who can't afford it will have it waived!) and need to keep a good record of this.
I developed an Excel spreadsheet to do this with each term on a worksheet. One cell corresponds to one person's attendance on a particular session. The spreadsheet totals up the subs paid by each user and calculates how much they are due if they have forgotten their money on some sessions. We also track attendance of volunteer staff. This data all feeds into a chart which the club leaders can use to easily provide summary attendance information in their regular reports to trustees.
Excel might seem a bit trivial to CodeProject readers, but it is a very flexible, customisable platform for simple applications, which can be extended by non technical users.
Most importantly, this is where we have been able to involve our service users. We have some older ones that now volunteer - one of the most accessible volunteering activities is the collection of subs and taking of the register. The particular member who does this regularly takes ownership of it and loves the responsibility and learning marketable skills that might help him find a job.
We actually host the spreadsheet on DropBox, rather than Huddle. DropBox allows a certain amount of file storage for free and is definitely a candidate for a small charity. The reason we use DropBox for the registers is because of the way files are mirrored on the local file system of a computer. There is no need for sign in once logged into the computer. It also can be used when offline (sometimes WiFi is unreliable in the centre where we meet). After a term has finished, we move the attendance records to Huddle for longer term storage.
We should probably review Huddle's relatively new offline features, but for now we manage the complexity of having two file storage systems this way.
Online Donation Platform
We are completely reliant on grants and donations for our funding. We want to be able to let kind people that wish to donate money to us, to be able to do so as easily as possible.
For this, we use CAF Donate. There are no fixed costs and we only have to pay a small fee for each donation.
It was very easy to register (we also bank with CAF too) and there is a widgit we have embedded on our website.
Managing DBS Checks
The importance of safeguarding our service users is not something I will elaborate on in this forum. Suffice to say that all of our staff (paid or voluntary) and trustees need to undergo criminal record checks. In England, this is done via the Disclosure and Barring Service (DBS) (formerly know as CRB). Having administered these checks for more than a decade, I can testify that it can be a tricky and fiddly process. In the days when only paper forms were available, it was frankly a nightmare - particularly for a club that meets only once a week.
However, online checks are now available and are so much easier! But it seems that not all charities use them.
The Squad, although an independent charity is affiliated to Mencap. As part of its service to affiliated charities, Mencap provides a staffed Disclosure Team - and allow us to use their online service. This provides a very easy service for applicants - they just fill in an online form, where any of the details that used to delay paper forms (such as gaps in residency) are trapped before filling in.
The authorised checkers then log into an easy to use portal with a nice dashboard that makes everything easy.
It is then just a matter of performing the ID checks and filling in the right boxes.
If you are not able to use the services of a larger charity (Mencap also do not charge us for checks on volunteers, which is extremely valuable!) then there are companies that will do it for you. We were an early adopter of online checks (before Mencap had their digital service) and for a time used a company called Care Check. Even though we had to pay for volunteer checks, we felt that the saving in the amount of time and hassle was a good use of the charity's funds.
After results come back, we record only the Certificate Number and the date of the disclosure. This way, we can work out when three years has passed since the last check (as per our safeguarding policy). Note: we do not record any information about whether there are any offences returned. We do not necessarily need a clean criminal record for volunteers (we are positive about rehabilitation of offenders), but we will obviously consider each individual applicant carefully.
Making old laptops usable (Lubuntu)
Often we have activities that involve the use of computers. We have to justify use of our resources, so can't just go out and buy lots of new laptops. However we have successfully been able to extend the life of old laptops by re-imaging them with a lightweight version of Linux called Lubuntu. We have two laptops we bought in 2008 (Windows XP) that had got so slow they were basically unusuable. Re-imaging with Lubuntu means that they are now effective for basic web browsing (and even support WebGL used by 3D-Printing websites!).
Some of our club leaders have connections with the Dragon Hall Tech Hub. As a result, our members have been able to benefit from being able to design objects that they have then seen 3D printed. They have also had coding sessions using Scratch.
Members have also been involved in content management and design on our website.
Part of our philosophy is to challenge the notions of what learning disabled people are able to do!
History
27/Sep/2016 - Initial creation