Skip to content

AngularJS and Bootstrap on the front-end, C# ASP.NET MVC WebAPI on the mid-tier, and Entity Framework with LINQ to SQL on the back-end.

Notifications You must be signed in to change notification settings

TimHarker/Janison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Application Architecture
========================

No .NET Core used.

Built using AngularJS, Bootstrap, C#, MVC, Web API, Entity Framework, LINQ and a local SQL Express instance.

http://angular-ui.github.io/bootstrap/ - Bootstrap components for AngularJS by the AngularUI Team

jQuery included, but might not be needed depending on bootstrap functionality desired.
jQuery Lite is included with AngularJS.
If full jQuery is needed, DOM manipulations (selectors) should be done in Directives not Controllers.

Dates are stored in universal time (UTC) to accommodate global independence from time zones - dates are formatted to local time zone for display.  A custom filter was created to bring more readability/meaning to dates - can be seen on Course Detail page (modules.cshtml), DateCreated and DateModified now show English words.

A third party loading bar is used to show progress for restful $http requests.

UI-router is used for Nesting and Statefullness beyond what ngRouter can provide.

Sorting and Paging is performed client-side using AngularJS's OrderBy and LimitTo filters.  

Primary keys where used for both CourseID and ModuleID, a foreign key on Module for CourseID was Indexed for join performance.

Web.Config AppSettings have a API_URL key to easily enable the WebAPI to be moved into a seperate CORS enabled project for location on a different web server - for scalability.

Assumptions
===========

- Assumed that 'course modified date' needed to be updated when Modules where added to a Course.
- When a Course is deleted the associated Modules are also removed.
- Only English speaking countries.
- Australian date formats.
- For PC and Tablet use, user experience degraded a little on mobile - but workable.
- Small dataset sizes (relative to current platform and device hardware usage stats) - i.e. Sorting and Paging done on client-side, might need moving server-side.
- Not much client-side Date Object manipulations currently needed, otherwise recommend moment.js or similar utility.
- Not much client-side Object Array manipulation needed, otherwise recommend Lodash/Underscore.js or similar utility.
- Created in preferred Janison technologies.

About

AngularJS and Bootstrap on the front-end, C# ASP.NET MVC WebAPI on the mid-tier, and Entity Framework with LINQ to SQL on the back-end.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published