Database collation and reporting program specification
The software we have in place (I will refer to it as “people counting software”) performs people counting and saves the data to a table in its own database file along with all the other data relevant to this software system, which the application that is to be created (I will refer to it as “application”) doesn’t need. This application needs to extract just the data from the counting table in the database that the people counting software creates and collate it in its own database. It then needs to be able to send a report automatically or by receiving a trigger email to a specified email addresses.
When the program first starts it should determine if it has its own database file which it was using the last time it was run. If the file is missing or not specified the user should be prompted to select an existing database file or create a new one. If the file was loaded successfully the application should carry out the main functionality automatically without any impute needed from the user.
When the program is “started up” or “once every hour” or by pressing a “manual update button” the program should open the people counting software database files (people counting software works by creating one database file per day using the date as the name e.g. [url removed, login to view] (yyyymmdd) and updating to this file every hour) and extract the counting data from the DATA_COUNTER table. Extract and collate that data as per the Collation configuration setup (see below), the collated data should be saved to the applications own database along with a note of when this database was last checked. It should automatically check from the last time it was updated to the present time and date to collate any new data which may have been generated since the application last did an update, this will also be done every hour automatically while the program is running. The database that the application creates should be archived every month so that one new database is created every month.
On the specified dates and times (see Email/SMS setup) send of emails and/or SMS (through SMS gateway or GSM module?). Every 10 min check email address (when this is switched on using an on/off button or checkbox) if a trigger email is received initiate a manual report send and delete the trigger email.
Allow email addresses that reports are to be sent to, to be Specified (use an add button to add addresses to a list box allowing an unlimited number of email addresses to be specified). Specify the SMTP and POP server info so that emails can be sent and received. Specify a schedule (time and day of the week) for an automated report to be sent, allowing for multiple reports to be sent in a week.
Different SMS gateways take the user name and password in different ways, to handle that this section will need to be quite versatile. Textboxes will be used to enter the user name, password (the password characters will be hidden), phone No’s (up to 8 numbers) and custom text. Using a number of add buttons under each text box you should be able to put together a custom email address and subject line, multiple intenseness of this should be able to be inserted into a list box so that more than one can be sent at the report time. The report will be in the main body of the text and cut down to fit on a text message.
For both the email and SMS reports you will be able to specify which of the custom user nameable counters should be used for the report, different ones should be able to be selected for emails and SMS (e.g. so email reports can have them all in it and SMS reports can just have one or two in it).
Collation configuration setup
The first thing to be specified is the number of cameras being used for counting purposes, a maximum of 16 cameras and in minimum of 1 should be able to be selected.
The next thing that should be defined is user nameable counters (an unlimited number of counters should be able to be added). Each counter will define which camera id’s it will use for its counting, each camera id can only be used once for a counter but that camera id can be used in many counters (e.g. camera id 1 can only be used once in “Main” counter but also be used in all other counters). Each counter will require too identify which counter value to use (e.g. in, out, both in and out added together, and both added and divided by 2).
Protection of software
The application needs to be protected so it can’t be copied on to another PC and just work properly. There needs to be some licence key entered that is machine specific or a licence generator or something of that nature so that only someone that is authorised can install it on a new PC.
Any of the above information that describes how to implement features of this application is only used as a guide. If you think that there is a better or easier way to achieve the same results let us know and we ill give you the green or red light.
Attached is a example of the database file that the application you are creating will need to open.