This article is the second part of the Foster project series. You can view the first part here:
Part 1: Requirement Specification
The article describes the architecture and system design of the FOSTER (Food Stamps Terminal) application.
The goal of the article is to cover the high-level system architecture, design, hardware and software requirements for implementing the solution.
The article also contains detailed information on the SharePoint Infrastructures needed like:
- Site Collections
- Sub Sites
- Content Types
The article is meant for anyone who wanted to understand the system architecture and design. The following are the particularly intended audiences:
Food Stamps Terminal
Software Development Kit
SharePoint Solution Package
The article is meant for anyone wanting to understand the system architecture and design. The following are the particularly intended audiences:
- Foster Managers
- Foster Developers
- Foster Administrators
As stated in the Requirements Specification, the FOSTER application provides a better user interface and automated solutions to address Food Stamps allocation and management.
The following are the components involved in the application:
- Records Management
- Enterprise Search
Intranet & Business Impacts
The existing intranet sites are not impacted by the Foster application. The Foster application will provide a better management for the existing manual Food Stamps allocation process. It improves the employee productive time usage.
The following are the users who are authenticated to use the system:
The users are authenticated using Active Directory Domain Services installed in the Intranet. The user has to provide the credentials to login to the system.
The following is the Logical Architecture of the Foster application.
The components involved are:
- User Interface: The user facing components involving site, pages, lists etc.
- Business Layer: The middle layer which handles the business logic
- Database: The persistence layer which is actually SharePoint content db.â€ƒ
The following is the Physical Architecture of the Foster application.
The SharePoint server contains the following components:
- Web Front End Server
- SharePoint Database Server
- Content Database Server
The client machines are interacting with the SharePoint server. The Domain Controller and the Active Directory are other servers in the network. It could reside in the same SharePoint server as well.
The Site Architecture of Foster application is shown below. A new Web Application and Site Collection have to be created.
The Foster Site Collection contains the following sub sites:
Site Collections & Sub Sites
The following are site collections and sub sites required by the application.
Site Collection 1: Foster
Type: Site Collection
Sub Site 1: Home
Sub Site 2: Applications
Sub Site 3: Approval
Sub Site 4: Search
Custom Content Types
Following are the custom content types required by the Foster application.
Site Column 1: Application Status
Name: Application Status
Choices: Started, Approved, Rejected
Default Value: Started
List Definition 1: Applications
The following are the list instances of type Applications.
List 1: New Applications
Name: New Applications
Parent Site: Applications
List 2: Approved Applications
Name: Approved Applications
Parent Site: Approval
List 3: Rejected Applications
Name: Rejected Applications
Parent Site: Approval
List 4: Employment Status
Name: Employment Status
Parent Site: Approval
The following are the screens involved in the solution.
Screen-01: New Applications
The following is the view screen for the New Applications list.
The following is the entry screen for New Applications. (Use Case Mapping: US-03)
Screen-02: Approved Applications
The following is the view screen for the Approved Applications list.
The following is the entry screen for Rejected Applications. Use Case Mapping: UC-04
Screen-03: Rejected Applications
The following is the view screen for Rejected Applications list.
The following is the entry screen for Rejected Applications.
The Employment Status list is managed through the following Timer Job. This timer job fetches new applicant job status from the external database.
Timer Job Name: Employment Status Job
Timer Job Interval: Daily
Description: Reads the New Applicant SSN number and fetches the Job Status from the external database. The database is resolved using the specified connection string. Entity Framework is used to connect to the database and query the result.
The following is the entity structure the Timer Job will be fetching to update the Employment Status list. The whole list is fetched from the database and updated with the list inside Foster. This Employment Status list is in turned used by the Approval workflow.
The client application is a .Net 4.0 Windows Forms Application that uses the SharePoint Client Object Model API. The client application communicates with SharePoint to get the data and posts it to the Accounting SDK.
The following is the main screen of the Client Application:
The Get command should fetch the current month total of the Approved Applications from the SharePoint site.
The Post command should post the total to the Accounting SDK.
The Get and Post buttons should be enabled only on having a valid connection with the SharePoint site.
The application should provide a button to allow connecting to SharePoint site.
The application should provide a button to close the application.
The application includes the configuration file where the site URL, user name and password are stored.
<add key="site" value="http://foster.server.com"/>
<add key="user" value="user"/>
<add key="password" value="password!"/>
The following are the activities involved with respect to their operational boundaries.
New Applications Activities
The following is the activity diagram for the clerk logging into the system and entering new application details:
Approval Application Activities
The following is the manger activities in approving a new application. The new application SSN is checked with the Employment Status list inside Foster to Approve or Reject the application:
Timer Job Activities
The Timer Job on the specified interval initiates itself and connects to the external database to update the Employment Status list.
Roles & Permissions
The following are the roles and permissions involved in Foster:
Create Web Application, Create Site Collection,
Access the sites Home, Applications, Approval and Search. Can execute the Approval Workflow.
Access the sites Home and Applications. Can Add/Edit/Delete new applications.
Ensure the application is secured from:
- SQL Injection Attacks
- Cross-Site Scripting Attacks
Deployment is done through running SharePoint Solution Packages (wsp) files in the server.
The following are the deployment packages determined:
- Site Content Package
- Workflow Package
- WebParts Package
- Timer Job Package
The Site Content Package should contain the sub sites, list definitions, content types and list instances in their respected position. The Workflow Package contains the Approval Workflow of the project. The WebParts Package contains the Search WebPart associated with the project. The Timer Job Package contains the Employment Status update Timer job associated with the project.
The SharePoint Administrator on the client side has to create & configure the required Web Application and Site Collection manually.
- Users & Permission Configuration
- WebParts Instantiation
Hardware & Software Requirements
The following are the hardware requirements for the proposed system:
64 bit, four cores
80 GB of system drive
The following are the software requirements for the proposed system:
Windows Server 2008 R2 SP1
SQL Server 2008 R2 64 bit
Microsoft .Net 3.5 SP1
Microsoft Chart Controls for .Net 3.5
Windows PowerShell 2.0
ADO.NET Data Services Update for .Net 3.5
Microsoft Filter Pack 2.0
Windows Identity Foundation
The following are the roles required in the proposed windows server:
Web Server Role
Application Server Role
Hardware and software requirements (SharePoint Server 2010)