Local API - Cost of Integration
Introduction
This document reviews the chargeable aspects of local integration. Aside from ESS charges, it also mentions some costs involved with the development and running of your app that you may want to consider.
ESS charges
ESS charges for the following resources:
- ESS Software
- ESS Training Data
- ESS Development Support
- ESS Consultancy
- Per site charge for data access.
Development Support and Consultancy are optional but speed up the integration process significantly. A Cost Guide work sheet is available from here.
Example of a list of data
If you supply a list of data in the format of the example below, we can provide an estimate of what can be covered within a consultancy day.
As a supplier of <Functionality> to schools using SIMS, I need to be able to extract:
- A list of current pupils
- Surname
- Forename
- Year
- Reg
- Adno
- A list of their timetabled lessons for a period of 5 days (Today and next 4 days)
- Class
- Room
- Period
- Staff []
- A list of staff
- Staff Code
- Title
- Surname
- Initial
It is essential that this data is updated daily.
Development costs
The first decision is whether the data can be extracted using the reporting engine.
- Pupils - Yes
- Staff - Yes
- Applied Timetable - No
For the 2 simple reports; sample code is available .
There is a partner API to get the timetable for pupils which will need a SIMS Login call.
If you were to request this under consultancy you could reasonably expect to get the following during the consultancy day:
- SIMS Installed
- Installations explained
- Sample code and reports to do the above
- The sample code explained.
- And to be left with a set of classes for the above populated from test data in a c# console application project / .net framework dlls.
If you provide a list of data similar to the one in our example, ESS can estimate what is possible within a consultancy day. If you are interested in the consultancy service please contact SIMSPartnerManagement@parentpay.com. It may be a cost-effective kick-start for your project.
class Pupil
{
public string Surname;
public string Forename;
public string Year;
public string Reg;
public string Adno
}
...
public static void Load()
{
if (SIMS.Login())
{
List<Pupil> Pupils = Pupils.Populate(); // Runs a report
List<Staff> Staffs = Staff.Populate(); // Runs a report;
List<Lesson> Lessons = Lesson.Populate(DateTime.Today, DateTime.Today.AddDays(5)); // Invokes the API.
// TI needs to do something with the data...
}
}
Usually the vast majority of the application development time will be taken at adding the TI's application value in this example.
Additional work
In addition to the data exchange with SIMS, TIs will need to provide:
Code for their Solution
Their own code for their solution. This work is neither something that we can estimate for the TI nor can our consultants help to build the TI app beyond the data exchange with SIMS.
An installer
Visual studio does offer these but it can be tricky to find out how to achieve this. Videos can be found online but we are unable to recommend any particular one.
A set up application
Typically TI applications are run as a Windows Service or more simply as a scheduled task. It is relatively straight forward to automate the operation of schtasks.exe to:
- Get your application to run every 10 minutes, 10 hours, or 10 days as required.
- The task scheduler also protects any command line parameters such as user name and password for service accounts to a degree where the network admins can see the credentials (but could also access the SQL server) but largely secure these from unauthorised eyes.
Additionally this application will need to capture and securely store any required configuration data such as SIMS passwords, TI passwords / keys and secrets.
Update plan
It is wise to assume that all software has bugs and that your application will need to be updated at some point. It is often easier to plan for this up-front rather than work out how to uninstall / update later.
Test plan
We often see issues with TI code whereby the TI application crashes because the data fails to contain an expected field. For example, a contact may not have a 'Title' and if one is required an error will occur. Testing needs to be able to inject edge cases for common examples and potentially design to be pragmatic when a parent record simply has a one character forename and a surname of Smith.
Security plan
Any web-based solution holding personal data must consider PEN Testing, data processing contracts and must meet the vendor's obligation to securing school data. Fully on-premise solutions (selling just software to the school) can be significantly cheaper because the burden of securing the school's network lies with the school. However, even locally-installed/hosted solutions must do everything expected to secure personal data.
Cost of maintaining and supporting your application
There are two ongoing costs you should consider. The first is the cost of setting up a new customer. The first customer is usually a breeze because of the excitement and it will not matter if it takes all day to install your app and get it running. This might be acceptable for all new customers but you may want to consider factoring a day's work into your pricing.
The second is the cost of product updates. If new functionality is needed in your application 4 times a year, an activity that takes 2h (4x 1/2h, say) per year for 1000 schools could require additional head count for your organisation. It is important to plan for this support. You may want to consider writing a self-updating application. While this is unlikely to be cost-effective for 10 customers, it might be a prudent investment if you have more than 1000 customers.
ESS cannot accurately predict these costs for you but recommends that you research, design, and plan appropriately.