
Topic 3, Fabrikaminc
Background
Fabrikam is a commercial bank. The primary customers are individuals and employers with up to
10,000 employees. Fabrikam provides Internet banking services to customers. You are developing a Universal Windows Platform (UWP) app for Fabrikam that extends the Internet banking to a UWP app.
Business Requirements
Core functionality
Users must be able to access accounts, view balances, view recent transactions, and deposit checks by using the UWP app.
Usability
The app must us industry proven design patterns across the app. All navigational elements must be visible at all times.
Security
The app must provide secure transactions to protect customer privacy.
Technical Requirements
Data
The app must use a file based database. You must use a code first entity framework approach.
User interface
You must use a Model-View-ViewModel (MVVM) pattern.
Users must be able to access all content through the top-level navigation after they sign in.
The app must allow the user to upload up to 50 images (front and back) of checks to deposit.
During the upload process, the app must be responsive to any other user actions.
The app must only upload images when no other pending inputs are in the queue.
You must implement the following pages:

Network and web service
The app must meet the following requirements related to networking and web services:
- Connect to a web service over a secure HTIP connection to upload
images.
- Connect to Fabrikam's core web service to retrieve account
information.
- Use networking technology already available in the .Net Framework.
- Consume the JSON that the Fabrikam core web service provides.
User data and alerts
The app must meet the following requirements related to user data and alerts:
- Download new monthly bank statements when possible.
- The download process must not affect the performance of the app.
Network and web service
The app must meet the following requirements related to networking and web services:
- Connect to a web service over a secure HTIP connection to upload
images.
- Connect to Fabrikame's core web service to retrieve account
information.
- Use networking technology already available in the .Net Framework.
- Consume the JSON that the Fabrikam core web service provides.
User data and alerts
The app must meet the following requirements related to user data and alerts:
- Download new monthly bank statements when possible. The download
process must not affect the performance of the app.
- Report to the user when the statements are downloaded to the device .
- Write a log entry when statements downloads are not successful.
- Periodically check for user activity and automatically log the user
out when there is no activity for more than 15 minutes.
Security:
The app must meet the following requirements related to security:
- Use a multi-factor authentication (MFA) by using email and a
verification code to identify the user.
- Security store credentials and retrieve credentials. Automatically
sign in the user irrespective of the device that is used to sign in to
the app.
- Store the resource name within the app itself.
- Connect to an authentication app by using the URI schema fabrikam-
secutity://oauth.AccountContext.cs
Relevant portions of the app files are shown below. Line numbers in the code segments are included for reference only and include a two-character prefix that prefix that denotes the specific file to which they belong.

lmageMeanger.cs
Relevant portions of the app files are shown below. Line numbers in the code segments are included for reference only and include a two-character prefix that prefix that denotes the specific file to which they belong.

ClientProxy.cs
Relevant portions of the app files are shown below. Line numbers in the code segments are included for reference only and include a two-character prefix that prefix that denotes the specific file to which they belong.

BkgTaskMgr.cs

CredentialManagers.cs
Relevant portions of the app files are shown below. Line numbers in the code segments are included for reference only and include a two-character prefix that prefix that denotes the specific file to which they belong.

Main Page.cs
Relevant portions of the app files are shown below. Line numbers in the code segments are included for reference only and include a two-character prefix that prefix that denotes the specific file to which they belong_
