Solution
Student Success Dashboard
This is the base project that houses all of the Content related items. Anything related to Views,
TypeScript/JavaScript, and routing can be found in this project. When navigating for a particular
script for a View, the script folders follow the same folder directory hierarchy as the Views. For
example, if you were looking for the scripts related to ~/Student/Finder, they would be located in
Scripts/Views/Student/
SSD.Integration.Database
The Integration project is responsible for integrating the data retrieved from district databases into
the Student Success Dashboard education databases.
SSD.Azure
This project also contains all of the Azure settings for the development environments. Any change that
needs to be made can be made in the cscfg files. This project should be set as the default StartUp project
to ensure that the Azure emulator is initiated upon start of debugging. Additionally all deployments to
Azure are to be made through this project via right click -> publish.
SSD.Application
The Application project contains the controller logic for the Student Success Dashboard. In addition to the
controller logic, it also houses the logic for cleaning up Azure Blob storage. This cleanup routine runs out
of an independent Azure Worker Role and serves to sweep out old temporary files lingering in Blob storage.
SSD.Business
This project serves as the Business Logic Layer of the application. It does a lot of the heavy lifting, so to
speak, for the application. You can find a business object by taking the name of the Controller and matching it
to its corresponding Manager. For example, ProviderController will have most of its logic stored in the
ProviderManager. Additionally, the file processing logic for the Student Success Dashboard is housed in the IO
directory.
SSD.Data
The Data project controls the Education data contexts for the Student Success Dashboard. The Education data
context contains all DbSets associated with the different entities in the Domain project.
SSD.Domain
The Domain project houses all of the domain objects used by the Student Success Dashboard. These map directly
to what Entity Frameworks generates in the database.
SSD.Presentation
The Presentation project contains the ViewModel logic for the Student Success Dashboard. This project passes
back ViewModels to the Business layer which it populates and returns to the views.
SSD.Repositories
The Repositories project contains the means for the Student Success Dashboard to interact with the Education
data contexts. These repositories follow the repository pattern and allow for adding, updating, removing and
querying of items stored within the specific domain repository. It is also important to note that all
Education repositories need to be “obtained” through the RepositoryContainer.
SSD.Security
The Security project contains the logic for application security, Azure Access Control Service and the SendGrid
mailer client. The logic for the SendGrid Mailer can be found Nested in Security/Net. It is important to note
that under a free trial SendGrid only allows 200 emails a day so as the Student Success Dashboard project picks
up steam a full version license will need to be procured.
SSD.Common.Tests
The Common.Tests project is simply a type library for the testing projects.
SSD.IntegrationTest
The IntegrationTest project is designated for all integration tests that are desired to adequately test the Student
Success Dashboard application. These tests check to make sure functions work across the system rather than focus on
one piece of small functionality. They use a temporary database on localDB.
SSD.UnitTest
The UnitTest project is for all unit tests that are used for the Student Success Dashboard. As the development team
adopted a TDD approach in designing the Student Success Dashboard, we wrapped functionality with appropriate unit
tests. By utilizing TDD, the team not only reduced potential coding errors but also increased refactoring confidence
by having a testing framework to fall back on to ensure that any potential refactoring still maintains the business
logic integrity. Currently the UnitTest project is utilizing MS Test and Rhino Mocks.
Layer Diagram
With Visual Studio Ultimate edition you can use the SSD.Models project which has a System.layerdiagram file. This
validates project references to satisfy the following architecture. This validation can run as part of the build process.
Return to the wiki Home