Subcontractor will create and build an Update Utility to manage file and data updates to the Client’s Navigator application and TeachSmart Learning System.
A. Scope of Work
The Update Utility will need to perform the following actions:
• Add/update/delete files for the Navigator AIR app
• Add/update/delete files for the TeachSmart app
• Update Utility will need to work on both Mac and PC environments or create separate versions.
The "update workflow" will be:
• Client delivery Update Utility will download an update "packet" to the /Downloads folder on the machine.
• When user launches the Navigator app, the Update Utility needs to run first (i.e. before the AIR app actually launched).
• Update Utility will look at the downloads folder to determine if an update packet is present
• If there is an update packet the Update Utility:
o Processes one update at a time (by date, oldest first)
o Runs silently in the background if possible
Include progress box for updates so the user understands why the launch of Navigator is delayed.
o Completes each update packet before moving on to the next.
o Update packet is removed after successful update
o Update Utility MUST be able to roll back an update if unsuccessful for any reason. The update packet would remain and be processed at next launch.
• If there is NO update, Navigator app launches.
• Update packet is a ZIP file called "[url removed, login to view] where YYMMDD is the date
• Update packet contains:
o [url removed, login to view] file
o Files to be updated/added
[url removed, login to view] file:
• An XML file containing instructions for the Update Utility
• Each line would contain an "action" (copy/delete) with appropriate filename, filepath and any other parameter needed.
• Subcontractor will use metadata XML files to determine filepaths of the TeachSmart files if at all possible.
• Copy action:
o If destination path and/or file does not exist, then create the path and add the file.
Processing the Update Packet by the Update Execution Utility
• Unzip the packet
• Execute instructions in the [url removed, login to view] file line by line
• Must be able to roll back the entire update if all the instructions cannot be executed
• If the Update Utility determines the Navigator or Notebook files are open that are to be updated
o Pops up a message box to the teacher informing them that the system is running a system update and needs for them to close the Navigator application or a specific Notebook file before it can continue.
o The message box waits for the user to hit a button
o User selects Okay:
Pop-up box closes, Update Utility continues update
If the Navigator or Notebook file is still open, it pops up the same message
o User selects Cancel:
Update Utility rolls back any instructions that have been executed for the update
Update Utility cleans up
Update Utility launches Navigator and no update is executed
• If the update successfully completes all update items in the instruction file
o Update Utility performs clean-up
Backup files are removed (used for rollback)
[url removed, login to view] file is removed
Update packet (ZIP) is removed
o Update Utility rolls back any instructions that have been executed for the update
• Launch Navigator
Subcontractor will provide the following:
• Executable files to run the Updater, all files needed for installation by Client (using Client’s existing installer)
• Beta and final review, with modifications based on Developer and Client feedback
• Quality Assurance / Testing
• Subcontractor will provide documentation on folder structure requirements for the payload
All deliverables will be sent via electronic means (email, FTP drop, etc.). Subcontractor will provide Developer with all final source files.
Subcontractor warrants that the Deliverables will operate according to specifications. If a defect arises during the 90 days after acceptance of each product deliverable, Subcontractor will promptly resolve.
3 freelance ont fait une offre moyenne de 6500 $ pour ce travail
We are well experienced in flash based projects so please check private message for previous work and decide the best team for this project. Thanks