Service: custom development of a collaboration portal on .NET platform, system analysis
Solution type: web application
Business area: education
Period: 05.2007-current
Key problems
Being an active player of its home country educational sector for long years, with its very successful collaboration software system for schools, the Customer started a new project with a goal to develop new software system aimed to address day-to-day needs of child-care organizations, their employees and relatives of children they serve. This new system is to take best from the existing school collaboration system and to provide new and specialized features, with the initial focus on the following:
- management of data about children and their relatives;
- management of data about employees;
- data importing facilities;
- data reporting facilities;
- private messaging system to organize e-mail-like communication between users;
- document management facilities;
- document templates management facilities;
- different information publishing facilities, like news boards, notices and photo albums to share photos and slide-shows;
- extensive customization features to allow child-care organizations to present themselves on the Web in a unique way;
Typical deployment is to serve about 250 child-care organizations with 25 000 employees, 37 000 children and 180 000 children relatives, which is really a lot of data. A number of deployments are planned and all the bits will run within the Customer's hosting environment. To minimize maintenance cost, a possibility to implement multiple deployments with the same installation of the system is required.
With good reasons in mind, the Customer suggested and Arcadia agreed that the system shall be built from scratch, with Arcadia to be responsible for all technical aspects of the project, including system architecture and design, and that no high-level platform, like MOSS or DotNetNuke is applicable here.
Also, the Customer isn’t to provide complete software requirements ready to be taken as input for system design and implementation. Instead, all required inputs are to be developed by Arcadia in cooperation with the Customer, and on the basis of top-level business requirements and prototypes which should be provided by the Customer.
Solution
To address the lack of input software requirements, Arcadia was performing extensive system analysis taking as input top-level business requirements and prototypes provided by the Customer, looking for data elements and relations between them, system functions and Web-UI layout, clarifying unclear, sometime contradictory or even missed details with the Customer. The developed data and functional models were input for Arcadia’s system design and implementation activities, and quality assurance.
The architecture of the system was developed, system functions were organized into modules and, finally, implemented and tested. As part of the development cycle, performance tests were taken and required optimizations were applied, both in the application code and the database structure.
Technically, the developed system consists of two parts, a Web-frontend and a so-called Back-office. The former is responsible for handling communication with end-users and the latter takes responsibility for long-running processes like import of data provided from outside, bookkeeping and so on.
The system is built on top of Microsoft .NET 2 platform and uses Microsoft SQL Server 2005 as primarily data storage mechanism and Microsoft IIS as a web-server, all these run under Microsoft Windows 2003 Server operating system. Some data is kept in the file system and indexed with Microsoft Indexing & Search Services allowing end-users to search for information flexible. The Web-frontend is designed to run in a Web-farm environment and follows W3C's WCAG 1.0 guidelines.
No ADO.NET is used in the application code; instead, Object-Relational Mapping pattern is applied and implemented with NHibernate .NET toolset. Also, Web-frontend is build with Model-View-Controller pattern in mind, with some limitations and shortcuts. Domain logic that is common to both parts of the system is packaged into separate assemblies and re-used.
Development tools
- Microsoft Visual Studio .NET 2005
- Test Track Pro v6.1
- Subversion
Technologies used
- Microsoft .NET Framework 2
- Microsoft SQL Server 2005
- Microsoft Windows Server 2003
- Microsoft IIS 6
- Microsoft Windows Indexing & Search Service
- NHibernate .NET
- HTML, CSS, JavaScript
Duration and scope
19 months, ~10 000 person-hours