This software was built for a very prominent private school. The school already used an accounting and time table generation software with some excellent feature. But the user interface was complex and it did not provide certain important features or integration needed by the school. We developed a set of applications to work on data form the accounting software and also incorporate many additional modules to fulfill the requirements.
The project started with these objectives:
- Understand requirements of eight departments
Develop modules accordingly
- Study database structure if accounting software and sync data
- Provide attendance mechanism
- Sync all lesson and other entries with exchange accounts of staff and students
- Provide the user interface in school’s SharePoint portal
Migrate certain data from last two years into the system
Though the objectives were pretty straight forward, the project had many challenges
- Understanding a 3rd party database without any documentation and solely on explanation of functions provided by IT team
- Synchronizing with 3rd party database without causing issue with it
- Providing an ASP.NET application inside a SharePoint portal
Synchronizing Exchange calendar of all staff and students with their calendar information
- A very diverse set of excel files used by departments to be migrated into the database
A detailed study of 3rd party database was done by profiling and observing behavior of data against functions in the software. Based on this a sync mechanism was designed to fetch necessary data into application database and also push required data back.
So as to host the solution in SharePoint portal, a generic web part was created to render ASP.NET user controls. This was needed to reduce the cost of development and debugging of the application.
The project lead met with members of departments to understand the data they were managing in excel files and how to best create features to give and much better and integrated user experience.
Exchange integration was done using EWS and the client library Microsoft provides. A sync application was created which reads lesson and other schedules from the database and created, updated and removed entries for Exchange calendars. A “control panel” was provided to monitor and manage both sync services.
Data migration was done in two steps. First all data from all files of each department was gathered in an intermediate database table and verified. Then the same was transformed and imported into system database through an application written specifically for the job.
The system was built on these technologies:
- .Net framework 4.0 with C#
- ASP.NET Web services
- Windows services
- EWS Managed API
- SQL Server 2008 R2 and SQL Profiler
- Exchange Server 2007