├── .gitignore ├── Assessment and FAQ ├── Readme.md ├── Scenario 1 - Nandoso.pdf └── Scenario 2 - University of Contoso.pdf ├── Auckland ├── Day 1 │ ├── 1. Introduction │ │ └── Welcome.pptx │ ├── 2. Introduction to Git │ │ ├── Readme.md │ │ └── Setting up Git using GitHub.pptx │ ├── 3. Web Sessions │ │ ├── Readme.md │ │ ├── Web I │ │ │ ├── Readme.md │ │ │ └── Web Development.pptx │ │ └── Web II │ │ │ ├── MSAWebApp │ │ │ ├── MSAWebApp.sln │ │ │ └── MSAWebApp │ │ │ │ ├── App_Start │ │ │ │ └── WebApiConfig.cs │ │ │ │ ├── Content │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ └── bootstrap.min.css │ │ │ │ ├── Global.asax │ │ │ │ ├── Global.asax.cs │ │ │ │ ├── MSAWebApp.csproj │ │ │ │ ├── Properties │ │ │ │ └── AssemblyInfo.cs │ │ │ │ ├── Scripts │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ ├── jquery-1.9.1.intellisense.js │ │ │ │ ├── jquery-1.9.1.js │ │ │ │ ├── jquery-1.9.1.min.js │ │ │ │ └── jquery-1.9.1.min.map │ │ │ │ ├── Web.Debug.config │ │ │ │ ├── Web.Release.config │ │ │ │ ├── Web.config │ │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ ├── index.html │ │ │ │ └── packages.config │ │ │ ├── MSAWebAppComplete │ │ │ ├── MSAWebAppComplete.sln │ │ │ └── MSAWebAppComplete │ │ │ │ ├── App_Start │ │ │ │ └── WebApiConfig.cs │ │ │ │ ├── Content │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── style.css │ │ │ │ ├── Global.asax │ │ │ │ ├── Global.asax.cs │ │ │ │ ├── MSAWebAppComplete.csproj │ │ │ │ ├── Properties │ │ │ │ └── AssemblyInfo.cs │ │ │ │ ├── Scripts │ │ │ │ ├── StudentModule.js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ ├── index.js │ │ │ │ ├── jquery-1.9.1.intellisense.js │ │ │ │ ├── jquery-1.9.1.js │ │ │ │ ├── jquery-1.9.1.min.js │ │ │ │ └── jquery-1.9.1.min.map │ │ │ │ ├── Web.Debug.config │ │ │ │ ├── Web.Release.config │ │ │ │ ├── Web.config │ │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ ├── index.html │ │ │ │ └── packages.config │ │ │ └── Readme.md │ └── Readme.md ├── Day 2 │ ├── 1. API Sessions │ │ ├── Whats an API.pptx │ │ └── Whats in server side.pptx │ ├── 2. API Demo Pt I │ │ ├── Course.cs │ │ ├── Enrollment.cs │ │ ├── Readme.md │ │ ├── SeedMethod.cs │ │ └── Student.cs │ ├── 3. API Demo Pt II │ │ └── Readme.md │ ├── Full App │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── MSAUniApp.sln │ │ └── MSAUniApp │ │ │ ├── App_Start │ │ │ ├── SwaggerConfig.cs │ │ │ └── WebApiConfig.cs │ │ │ ├── Content │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── style.css │ │ │ ├── Controllers │ │ │ ├── CoursesController.cs │ │ │ ├── EnrollmentsController.cs │ │ │ └── StudentsController.cs │ │ │ ├── Global.asax │ │ │ ├── Global.asax.cs │ │ │ ├── Index.html │ │ │ ├── MSAUniApp.csproj │ │ │ ├── Models │ │ │ ├── Course.cs │ │ │ ├── Enrollment.cs │ │ │ ├── MSAUniAppContext.cs │ │ │ └── Student.cs │ │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ │ ├── Scripts │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ ├── index.js │ │ │ ├── jquery-1.9.1.intellisense.js │ │ │ ├── jquery-1.9.1.js │ │ │ ├── jquery-1.9.1.min.js │ │ │ ├── jquery-1.9.1.min.map │ │ │ └── studentmodule.js │ │ │ ├── Web.Debug.config │ │ │ ├── Web.Release.config │ │ │ ├── Web.config │ │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── packages.config │ ├── Readme.md │ └── Web III │ │ └── Readme.md ├── Day 3 │ ├── Authentication │ │ ├── Content │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── style.css │ │ ├── Index.html │ │ ├── Readme.md │ │ ├── Scripts │ │ │ ├── facebooklogin.js │ │ │ ├── index.js │ │ │ ├── jquery-1.9.1.intellisense.js │ │ │ ├── jquery-1.9.1.js │ │ │ ├── jquery-1.9.1.min.js │ │ │ └── jquery-1.9.1.min.map │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── scripts │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── studentmodule.js │ ├── Cross Platform │ │ ├── Cross Platform Development.pptx │ │ ├── Ionic Project │ │ │ └── MSAUniversity │ │ │ │ ├── .bowerrc │ │ │ │ ├── .editorconfig │ │ │ │ ├── .gitignore │ │ │ │ ├── bower.json │ │ │ │ ├── config.xml │ │ │ │ ├── gulpfile.js │ │ │ │ ├── hooks │ │ │ │ ├── README.md │ │ │ │ └── after_prepare │ │ │ │ │ └── 010_add_platform_class.js │ │ │ │ ├── ionic.project │ │ │ │ ├── package.json │ │ │ │ ├── scss │ │ │ │ └── ionic.app.scss │ │ │ │ └── www │ │ │ │ ├── css │ │ │ │ └── style.css │ │ │ │ ├── img │ │ │ │ └── ionic.png │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── controllers.js │ │ │ │ ├── lib │ │ │ │ └── ionic │ │ │ │ │ ├── css │ │ │ │ │ ├── ionic.css │ │ │ │ │ └── ionic.min.css │ │ │ │ │ ├── fonts │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ ├── ionicons.svg │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ └── ionicons.woff │ │ │ │ │ ├── js │ │ │ │ │ ├── angular-ui │ │ │ │ │ │ ├── angular-ui-router.js │ │ │ │ │ │ └── angular-ui-router.min.js │ │ │ │ │ ├── angular │ │ │ │ │ │ ├── angular-animate.js │ │ │ │ │ │ ├── angular-animate.min.js │ │ │ │ │ │ ├── angular-resource.js │ │ │ │ │ │ ├── angular-resource.min.js │ │ │ │ │ │ ├── angular-sanitize.js │ │ │ │ │ │ ├── angular-sanitize.min.js │ │ │ │ │ │ ├── angular.js │ │ │ │ │ │ └── angular.min.js │ │ │ │ │ ├── ionic-angular.js │ │ │ │ │ ├── ionic-angular.min.js │ │ │ │ │ ├── ionic.bundle.js │ │ │ │ │ ├── ionic.bundle.min.js │ │ │ │ │ ├── ionic.js │ │ │ │ │ └── ionic.min.js │ │ │ │ │ ├── scss │ │ │ │ │ ├── _action-sheet.scss │ │ │ │ │ ├── _animations.scss │ │ │ │ │ ├── _backdrop.scss │ │ │ │ │ ├── _badge.scss │ │ │ │ │ ├── _bar.scss │ │ │ │ │ ├── _button-bar.scss │ │ │ │ │ ├── _button.scss │ │ │ │ │ ├── _checkbox.scss │ │ │ │ │ ├── _form.scss │ │ │ │ │ ├── _grid.scss │ │ │ │ │ ├── _items.scss │ │ │ │ │ ├── _list.scss │ │ │ │ │ ├── _loading.scss │ │ │ │ │ ├── _menu.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _modal.scss │ │ │ │ │ ├── _platform.scss │ │ │ │ │ ├── _popover.scss │ │ │ │ │ ├── _popup.scss │ │ │ │ │ ├── _progress.scss │ │ │ │ │ ├── _radio.scss │ │ │ │ │ ├── _range.scss │ │ │ │ │ ├── _refresher.scss │ │ │ │ │ ├── _reset.scss │ │ │ │ │ ├── _scaffolding.scss │ │ │ │ │ ├── _select.scss │ │ │ │ │ ├── _slide-box.scss │ │ │ │ │ ├── _spinner.scss │ │ │ │ │ ├── _tabs.scss │ │ │ │ │ ├── _toggle.scss │ │ │ │ │ ├── _transitions.scss │ │ │ │ │ ├── _type.scss │ │ │ │ │ ├── _util.scss │ │ │ │ │ ├── _variables.scss │ │ │ │ │ ├── ionic.scss │ │ │ │ │ └── ionicons │ │ │ │ │ │ ├── _ionicons-font.scss │ │ │ │ │ │ ├── _ionicons-icons.scss │ │ │ │ │ │ ├── _ionicons-variables.scss │ │ │ │ │ │ └── ionicons.scss │ │ │ │ │ └── version.json │ │ │ │ └── templates │ │ │ │ ├── browse.html │ │ │ │ ├── login.html │ │ │ │ ├── menu.html │ │ │ │ ├── playlist.html │ │ │ │ ├── playlists.html │ │ │ │ └── search.html │ │ └── Readme.md │ ├── Native App │ │ ├── MSA Weather.sln │ │ └── MSA Weather │ │ │ ├── About.xaml │ │ │ ├── About.xaml.cs │ │ │ ├── App.xaml │ │ │ ├── App.xaml.cs │ │ │ ├── Assets │ │ │ ├── Logo.scale-100.png │ │ │ ├── SmallLogo.scale-100.png │ │ │ ├── SplashScreen.scale-100.png │ │ │ └── StoreLogo.scale-100.png │ │ │ ├── MSA Weather.csproj │ │ │ ├── MainPage.xaml │ │ │ ├── MainPage.xaml.cs │ │ │ ├── Package.appxmanifest │ │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ │ ├── WeatherObject.cs │ │ │ └── packages.config │ ├── Push Notification │ │ ├── Push Notification.pptx │ │ └── Readme.md │ ├── SignalR │ │ ├── Readme.md │ │ ├── SingalRChat.sln │ │ └── SingalRChat │ │ │ ├── ChatHub.cs │ │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ │ ├── Scripts │ │ │ ├── jquery-1.10.2.intellisense.js │ │ │ ├── jquery-1.10.2.js │ │ │ ├── jquery-1.10.2.min.js │ │ │ ├── jquery-1.10.2.min.map │ │ │ ├── jquery.signalR-2.2.0.js │ │ │ └── jquery.signalR-2.2.0.min.js │ │ │ ├── SingalRChat.csproj │ │ │ ├── Startup.cs │ │ │ ├── Web.Debug.config │ │ │ ├── Web.Release.config │ │ │ ├── Web.config │ │ │ ├── index.html │ │ │ └── packages.config │ └── jQuery Plugins │ │ ├── Readme.md │ │ ├── jQuery Plugins.pptx │ │ └── jQueryPluginDemo │ │ ├── Web.Debug.config │ │ ├── Web.config │ │ ├── css │ │ ├── fakeLoader.css │ │ └── sweetalert.css │ │ ├── index.html │ │ └── js │ │ ├── fakeLoader.min.js │ │ └── sweetalert.min.js ├── Pre Day 2 │ └── Readme.md └── Readme.md ├── Christchurch ├── Day 1 Complete │ ├── css │ │ ├── bootstrap.min.css │ │ └── style.css │ ├── index.html │ └── scripts │ │ ├── StudentModule.js │ │ ├── bootstrap.min.js │ │ ├── index.js │ │ └── jquery-1.10.2.min.js ├── Full App │ ├── .gitattributes │ ├── .gitignore │ ├── MSAUniApp.sln │ └── MSAUniApp │ │ ├── App_Start │ │ ├── SwaggerConfig.cs │ │ └── WebApiConfig.cs │ │ ├── Content │ │ ├── bootstrap-theme.css │ │ ├── bootstrap-theme.css.map │ │ ├── bootstrap-theme.min.css │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── style.css │ │ ├── Controllers │ │ ├── CoursesController.cs │ │ ├── EnrollmentsController.cs │ │ └── StudentsController.cs │ │ ├── Create.html │ │ ├── Detail.html │ │ ├── Edit.html │ │ ├── Global.asax │ │ ├── Global.asax.cs │ │ ├── Index.html │ │ ├── MSAUniApp.csproj │ │ ├── Models │ │ ├── Course.cs │ │ ├── Enrollment.cs │ │ ├── MSAUniAppContext.cs │ │ └── Student.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── Scripts │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ ├── createpages.js │ │ ├── detailpages.js │ │ ├── editpages.js │ │ ├── indexpages.js │ │ ├── jquery-1.9.1.intellisense.js │ │ ├── jquery-1.9.1.js │ │ ├── jquery-1.9.1.min.js │ │ ├── jquery-1.9.1.min.map │ │ └── studentmodule.js │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ ├── Web.config │ │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ │ └── packages.config ├── SeedMethod.txt └── Whats in server side.pptx ├── LICENSE ├── Others ├── Front End Demo │ ├── Code Snippets.txt │ ├── Final Source Code │ │ ├── css │ │ │ ├── bootstrap.min.css │ │ │ └── style.css │ │ ├── index.html │ │ └── scripts │ │ │ ├── StudentModule.js │ │ │ ├── bootstrap.min.js │ │ │ ├── index.js │ │ │ └── jquery-1.10.2.min.js │ └── Initial Source Code │ │ ├── css │ │ ├── bootstrap.min.css │ │ └── style.css │ │ ├── index.html │ │ └── scripts │ │ ├── bootstrap.min.js │ │ └── jquery-1.10.2.min.js ├── Front End Full │ ├── Create.html │ ├── Detail.html │ ├── Edit.html │ ├── Index.html │ ├── css │ │ ├── bootstrap.css │ │ ├── bootstrap.min.css │ │ └── style.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── scripts │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ ├── createpages.js │ │ ├── detailpages.js │ │ ├── editpages.js │ │ ├── indexpages.js │ │ ├── jquery-1.10.2.min.js │ │ └── studentmodule.js ├── JaySimpleSite │ ├── Web.Debug.config │ ├── Web.config │ ├── index.html │ ├── js │ │ ├── internet.js │ │ └── loader.js │ └── readme.md └── _images │ ├── API I │ ├── 1-1.PNG │ ├── 1-2.PNG │ ├── 1-3.PNG │ ├── 2-1.PNG │ ├── 3-1.PNG │ ├── 3-2.PNG │ ├── 5-1.PNG │ ├── 5-2.PNG │ └── 5-3.PNG │ ├── API II │ ├── 2-1.PNG │ ├── 2-2.PNG │ └── 2-3.PNG │ ├── Authentication │ ├── Step 1.PNG │ ├── Step 2.PNG │ ├── Step 3.PNG │ ├── Step 4.PNG │ ├── Step 5.PNG │ ├── Step 6.PNG │ ├── Step 7.PNG │ └── Step 8.PNG │ ├── Pre day 2 │ ├── 1-1.PNG │ ├── 2-1.PNG │ ├── 2-2.PNG │ └── 2-3.PNG │ ├── Web II │ ├── 3.PNG │ ├── 4-1.PNG │ ├── 4-2a.PNG │ ├── 4-2b.PNG │ ├── 4-3a.PNG │ ├── 4-3b.PNG │ ├── 4-4.PNG │ ├── 4-5.PNG │ └── 4-6.PNG │ ├── git │ ├── 2a.png │ ├── 2b.png │ ├── 3a.png │ ├── 3b.png │ ├── 5a.png │ └── 5b.png │ └── jQuery Plugins │ ├── 1-1.PNG │ ├── 1-2.PNG │ ├── 2-1.PNG │ └── 3-1.PNG └── README.md /Assessment and FAQ/Readme.md: -------------------------------------------------------------------------------- 1 | # Assessment and FAQ -------------------------------------------------------------------------------- /Assessment and FAQ/Scenario 1 - Nandoso.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Assessment and FAQ/Scenario 1 - Nandoso.pdf -------------------------------------------------------------------------------- /Assessment and FAQ/Scenario 2 - University of Contoso.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Assessment and FAQ/Scenario 2 - University of Contoso.pdf -------------------------------------------------------------------------------- /Auckland/Day 1/1. Introduction/Welcome.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/1. Introduction/Welcome.pptx -------------------------------------------------------------------------------- /Auckland/Day 1/2. Introduction to Git/Readme.md: -------------------------------------------------------------------------------- 1 | # 1. Creating Github Account + Download Extension for VS 2 | 3 | Create your GitHub account here - www.github.com 4 | 5 | As a student, you are eligible for the Student Developer Pack which gives you up to 5 private repositories. Get your student pack here - https://education.github.com/pack 6 | 7 | Download GitHub Extension for Visual Studio here (you'll need Visual Studio 2015) - https://visualstudio.github.com/ 8 | 9 | Alternatively, you can install the Desktop app - https://desktop.github.com/ 10 | 11 | 12 | 13 | # 2. Create a Repository 14 | - On the Github website, click on the 'add' icon and create 'new repository' 15 | 16 | ![2a](/Others/_images/git/2a.png) 17 | 18 | - Give your repository a name (such as project name) 19 | 20 | - If you have activated the student pack, you can create a 'private' repo. 21 | 22 | ![2b](/Others/_images/git/2b.png) 23 | 24 | # 3. Clone Repository 25 | 26 | - Once you have installed the GitHub extension for VS, you'll see the GitHub as a provider under the 'Team Explorer' tab. Login by clicking 'Connect'. 27 | 28 | ![3a](/Others/_images/git/3a.png) 29 | 30 | - Click 'Clone' to create a local copy of the repository 31 | 32 | ![3b](/Others/_images/git/3b.png) 33 | 34 | # 4. Creating a project in repo 35 | 36 | - To add a project in the repository, you simply need to create or move the project into the local folder you 'cloned' in (e.g. Documents\GitHubVisualStudio\MSAWebsite) 37 | 38 | # 5. Committing 39 | 40 | - To commit your changes to the local repository, click on 'changes' 41 | 42 | ![5a](/Others/_images/git/5a.png) 43 | 44 | - Add a message, check the files you want committed and click the 'Commit' button. 45 | 46 | - If you are ready to sync (push your changes to the global repository), click 'Sync' 47 | 48 | ![5b](/Others/_images/git/5b.png) 49 | 50 | 51 | # 6. Branching 52 | 53 | - To branch from the master, click on 'Branches' and right click master -> New Local Branch From 54 | 55 | - You can switch around between branches by double clicking on a specific branch 56 | 57 | 58 | # Help / Learn More 59 | 60 | GitHub Help - https://help.github.com/ 61 | 62 | GitHub Training - https://training.github.com/kit/courses/github-for-everyone.html 63 | 64 | To learn the basics of Git in command line try this - https://try.github.io/ 65 | 66 | FAQ for GitHub Extension for VS - https://visualstudio.github.com/help.html -------------------------------------------------------------------------------- /Auckland/Day 1/2. Introduction to Git/Setting up Git using GitHub.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/2. Introduction to Git/Setting up Git using GitHub.pptx -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Readme.md: -------------------------------------------------------------------------------- 1 | # Web Sessions 2 | 3 | This was delivered on Day 1 and is split into two main parts. Please refer to the two folders to get specific information. 4 | 5 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web I/Readme.md: -------------------------------------------------------------------------------- 1 | # Web I 2 | 3 | Concepts covered: HTML + CSS + JS 4 | Refer to the slides in the folder 5 | 6 | Helpful resrouces: 7 | http://www.w3schools.com/ 8 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web I/Web Development.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web I/Web Development.pptx -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSAWebApp", "MSAWebApp\MSAWebApp.csproj", "{8A8EA181-6B24-44A1-8F21-0B50B9AC2583}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {8A8EA181-6B24-44A1-8F21-0B50B9AC2583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {8A8EA181-6B24-44A1-8F21-0B50B9AC2583}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {8A8EA181-6B24-44A1-8F21-0B50B9AC2583}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {8A8EA181-6B24-44A1-8F21-0B50B9AC2583}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | 6 | namespace MSAWebApp 7 | { 8 | public static class WebApiConfig 9 | { 10 | public static void Register(HttpConfiguration config) 11 | { 12 | // Web API configuration and services 13 | 14 | // Web API routes 15 | config.MapHttpAttributeRoutes(); 16 | 17 | config.Routes.MapHttpRoute( 18 | name: "DefaultApi", 19 | routeTemplate: "api/{controller}/{id}", 20 | defaults: new { id = RouteParameter.Optional } 21 | ); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MSAWebApp.WebApiApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Routing; 7 | 8 | namespace MSAWebApp 9 | { 10 | public class WebApiApplication : System.Web.HttpApplication 11 | { 12 | protected void Application_Start() 13 | { 14 | GlobalConfiguration.Configure(WebApiConfig.Register); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MSAWebApp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MSAWebApp")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8a8ea181-6b24-44a1-8f21-0b50b9ac2583")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/Web.config: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 42 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | MSA Web App Demo 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
NameFirstCountry
first1last1country
first1last1country
38 |
39 |
40 | 41 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebApp/MSAWebApp/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSAWebAppComplete", "MSAWebAppComplete\MSAWebAppComplete.csproj", "{7927A6FF-2DA1-4F2D-AD50-66A0FF399692}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7927A6FF-2DA1-4F2D-AD50-66A0FF399692}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {7927A6FF-2DA1-4F2D-AD50-66A0FF399692}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {7927A6FF-2DA1-4F2D-AD50-66A0FF399692}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {7927A6FF-2DA1-4F2D-AD50-66A0FF399692}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | 6 | namespace MSAWebAppComplete 7 | { 8 | public static class WebApiConfig 9 | { 10 | public static void Register(HttpConfiguration config) 11 | { 12 | // Web API configuration and services 13 | 14 | // Web API routes 15 | config.MapHttpAttributeRoutes(); 16 | 17 | config.Routes.MapHttpRoute( 18 | name: "DefaultApi", 19 | routeTemplate: "api/{controller}/{id}", 20 | defaults: new { id = RouteParameter.Optional } 21 | ); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Content/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | } 3 | 4 | /*select all the th elements inside t 5 | the table head and spaces them out!*/ 6 | .spaced-table>tbody>tr>td{ 7 | padding: 20px; 8 | } 9 | 10 | /*select all the th elements inside the 11 | table body and spaces them out!*/ 12 | .spaced-table>thead>tr>th{ 13 | padding: 40px; 14 | } 15 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MSAWebAppComplete.WebApiApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Routing; 7 | 8 | namespace MSAWebAppComplete 9 | { 10 | public class WebApiApplication : System.Web.HttpApplication 11 | { 12 | protected void Application_Start() 13 | { 14 | GlobalConfiguration.Configure(WebApiConfig.Register); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MSAWebAppComplete")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MSAWebAppComplete")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("7927a6ff-2da1-4f2d-ad50-66a0ff399692")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Scripts/StudentModule.js: -------------------------------------------------------------------------------- 1 | // We're using the module pattern here to make it easier to reuse 2 | // this bit of code and seperate out our namespaces. 3 | var StudentModule = (function () { 4 | 5 | // If you want to declare things that are private to the module, 6 | // simply declare them here without returning them 7 | var privatethingy = 10; 8 | 9 | // Only things that are returned from this closure is exposed 10 | return { 11 | getStudents: function (callback) { 12 | 13 | // $ means that the function is being called from JQuery 14 | // We pass the parameters for the api as an object 15 | // The success function is called when the data is recieved 16 | // The callback allows us to pass this data back out main js file. 17 | $.ajax({ 18 | type: "GET", 19 | dataType: "jsonp", 20 | url: "http://api.uinames.com/?amount=25", 21 | success: function (data) { 22 | callback(data); 23 | } 24 | }); 25 | } 26 | } 27 | }()); -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Scripts/index.js: -------------------------------------------------------------------------------- 1 | // When the document is loaded, the DOMContentLoaded event occurs 2 | // We execute all our other logic after this occurs. 3 | document.addEventListener("DOMContentLoaded", function () { 4 | console.log("DOM loaded and ready to go!"); 5 | loadStudents(); 6 | }); 7 | 8 | // Used to load the student data - can actually do without this function 9 | // if you are not doing anything else in the load. 10 | function loadStudents() { 11 | StudentModule.getStudents(setupStudentsTable); 12 | } 13 | 14 | // This is the function we pass into StudentModule as the callback 15 | // It takes the data returned from the API call (studenList) and an input 16 | function setupStudentsTable(studentsList) { 17 | 18 | // Get a reference to the table body so we can add our rows in 19 | var studentTable = document.getElementById("studentList"); 20 | 21 | // Loop through all the student/name objects 22 | for (var i = 0; i < studentsList.length; i++) { 23 | //Create a new row element 24 | var row = document.createElement("tr"); 25 | 26 | //Create our data cells and append to row 27 | var firstNameCol = document.createElement("td"); 28 | firstNameCol.innerHTML = studentsList[i].name; 29 | row.appendChild(firstNameCol); 30 | 31 | var lastNameCol = document.createElement("td"); 32 | lastNameCol.innerHTML = studentsList[i].surname; 33 | row.appendChild(lastNameCol); 34 | 35 | var country = document.createElement("td"); 36 | country.innerHTML = studentsList[i].country; 37 | row.appendChild(country); 38 | 39 | // Append our rows to the table 40 | studentTable.appendChild(row); 41 | 42 | 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/Web.config: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 42 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
First NameLast NameCountry
32 | 33 | 34 | -------------------------------------------------------------------------------- /Auckland/Day 1/3. Web Sessions/Web II/MSAWebAppComplete/MSAWebAppComplete/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Auckland/Day 1/Readme.md: -------------------------------------------------------------------------------- 1 | # Day 1 in Auckland 2 | 3 | Agenda: 4 | 5 | Time | Topic 6 | -----|------ 7 | 9:30 to 10:00 | Gates open 8 | 10:00 to 11:00 | Welcome 9 | 11:00 to 11:30 | Assessments 10 | 11:30 to 12:30 | Source Control through GitHub 11 | 12:30 to 13:30 | Lunch 12 | 13:30 to 14:00 | Fun Quiz 13 | 14:00 to 15:30 | Web I 14 | 15:30 to 15:45 | Break 15 | 15:45 to 16:45 | Web II 16 | 16:45 to 17:00 | Recap, Precap and Q&A 17 | 18 | -------------------------------------------------------------------------------- /Auckland/Day 2/1. API Sessions/Whats an API.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/1. API Sessions/Whats an API.pptx -------------------------------------------------------------------------------- /Auckland/Day 2/1. API Sessions/Whats in server side.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/1. API Sessions/Whats in server side.pptx -------------------------------------------------------------------------------- /Auckland/Day 2/2. API Demo Pt I/Course.cs: -------------------------------------------------------------------------------- 1 | public class Course 2 | { 3 | [DatabaseGenerated(DatabaseGeneratedOption.None)] 4 | public int CourseID { get; set; } 5 | public string Title { get; set; } 6 | public int Credits { get; set; } 7 | 8 | [JsonIgnore] 9 | public virtual ICollection Enrollments { get; set; } 10 | } -------------------------------------------------------------------------------- /Auckland/Day 2/2. API Demo Pt I/Enrollment.cs: -------------------------------------------------------------------------------- 1 | public enum Grade 2 | { 3 | A, B, C, D, F 4 | } 5 | 6 | public class Enrollment 7 | { 8 | public int EnrollmentID { get; set; } 9 | public int CourseID { get; set; } 10 | public int StudentID { get; set; } 11 | 12 | public Grade? Grade { get; set; } 13 | 14 | [JsonIgnore] 15 | public virtual Course Course { get; set; } 16 | [JsonIgnore] 17 | public virtual Student Student { get; set; } 18 | } -------------------------------------------------------------------------------- /Auckland/Day 2/2. API Demo Pt I/Student.cs: -------------------------------------------------------------------------------- 1 | public class Student 2 | { 3 | public int ID { get; set; } 4 | public string LastName { get; set; } 5 | public string FirstMidName { get; set; } 6 | public DateTime EnrollmentDate { get; set; } 7 | 8 | [JsonIgnore] 9 | public virtual ICollection Enrollments { get; set; } 10 | } -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSAUniApp", "MSAUniApp\MSAUniApp.csproj", "{8FBA1F48-552B-427F-BDA5-05EAADD64447}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | using System.Web.Http.Cors; 6 | 7 | namespace MSAUniApp 8 | { 9 | public static class WebApiConfig 10 | { 11 | public static void Register(HttpConfiguration config) 12 | { 13 | // Web API configuration and services 14 | var cors = new EnableCorsAttribute("*", "*", "*"); 15 | config.EnableCors(cors); 16 | 17 | // Web API routes 18 | config.MapHttpAttributeRoutes(); 19 | 20 | config.Routes.MapHttpRoute( 21 | name: "DefaultApi", 22 | routeTemplate: "api/{controller}/{id}", 23 | defaults: new { id = RouteParameter.Optional } 24 | ); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Content/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | } 3 | 4 | /*select all the th elements inside t 5 | the table head and spaces them out!*/ 6 | .spaced-table>tbody>tr>td{ 7 | padding: 20px; 8 | } 9 | 10 | /*select all the th elements inside the 11 | table body and spaces them out!*/ 12 | .spaced-table>thead>tr>th{ 13 | padding: 40px; 14 | } 15 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MSAUniApp.WebApiApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Routing; 7 | 8 | namespace MSAUniApp 9 | { 10 | public class WebApiApplication : System.Web.HttpApplication 11 | { 12 | protected void Application_Start() 13 | { 14 | GlobalConfiguration.Configure(WebApiConfig.Register); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
First NameLast NameCountry
32 | 33 | 34 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Models/Course.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel.DataAnnotations.Schema; 5 | using System.Linq; 6 | using System.Web; 7 | 8 | namespace MSAUniApp.Models 9 | { 10 | public class Course 11 | { 12 | [DatabaseGenerated(DatabaseGeneratedOption.None)] 13 | public int CourseID { get; set; } 14 | public string Title { get; set; } 15 | public int Credits { get; set; } 16 | 17 | [JsonIgnore] 18 | public virtual ICollection Enrollments { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Models/Enrollment.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace MSAUniApp.Models 8 | { 9 | public enum Grade 10 | { 11 | A, B, C, D, F 12 | } 13 | 14 | public class Enrollment 15 | { 16 | public int EnrollmentID { get; set; } 17 | public int CourseID { get; set; } 18 | public int StudentID { get; set; } 19 | 20 | public Grade? Grade { get; set; } 21 | 22 | [JsonIgnore] 23 | public virtual Course Course { get; set; } 24 | [JsonIgnore] 25 | public virtual Student Student { get; set; } 26 | } 27 | } -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Models/Student.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace MSAUniApp.Models 8 | { 9 | public class Student 10 | { 11 | public int ID { get; set; } 12 | public string LastName { get; set; } 13 | public string FirstMidName { get; set; } 14 | public DateTime EnrollmentDate { get; set; } 15 | 16 | [JsonIgnore] 17 | public virtual ICollection Enrollments { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MSAUniApp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MSAUniApp")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8fba1f48-552b-427f-bda5-05eaadd64447")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Scripts/index.js: -------------------------------------------------------------------------------- 1 | // When the document is loaded, the DOMContentLoaded event occurs 2 | // We execute all our other logic after this occurs. 3 | document.addEventListener("DOMContentLoaded", function () { 4 | console.log("DOM loaded and ready to go!"); 5 | loadStudents(); 6 | }); 7 | 8 | // Used to load the student data - can actually do without this function 9 | // if you are not doing anything else in the load. 10 | function loadStudents() { 11 | StudentModule.getStudents(setupStudentsTable); 12 | } 13 | 14 | // This is the function we pass into StudentModule as the callback 15 | // It takes the data returned from the API call (studenList) and an input 16 | function setupStudentsTable(studentsList) { 17 | 18 | // Get a reference to the table body so we can add our rows in 19 | var studentTable = document.getElementById("studentList"); 20 | 21 | // Loop through all the student/name objects 22 | for (var i = 0; i < studentsList.length; i++) { 23 | //Create a new row element 24 | var row = document.createElement("tr"); 25 | 26 | //Create our data cells and append to row 27 | var firstNameCol = document.createElement("td"); 28 | firstNameCol.innerHTML = studentsList[i].name; 29 | row.appendChild(firstNameCol); 30 | 31 | var lastNameCol = document.createElement("td"); 32 | lastNameCol.innerHTML = studentsList[i].surname; 33 | row.appendChild(lastNameCol); 34 | 35 | var country = document.createElement("td"); 36 | country.innerHTML = studentsList[i].country; 37 | row.appendChild(country); 38 | 39 | // Append our rows to the table 40 | studentTable.appendChild(row); 41 | 42 | 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Scripts/studentmodule.js: -------------------------------------------------------------------------------- 1 | // We're using the module pattern here to make it easier to reuse 2 | // this bit of code and seperate out our namespaces. 3 | var StudentModule = (function () { 4 | 5 | // If you want to declare things that are private to the module, 6 | // simply declare them here without returning them 7 | var privatethingy = 10; 8 | 9 | // Only things that are returned from this closure is exposed 10 | return { 11 | getStudents: function (callback) { 12 | 13 | // $ means that the function is being called from JQuery 14 | // We pass the parameters for the api as an object 15 | // The success function is called when the data is recieved 16 | // The callback allows us to pass this data back out main js file. 17 | $.ajax({ 18 | type: "GET", 19 | dataType: "jsonp", 20 | url: "http://api.uinames.com/?amount=25", 21 | success: function (data) { 22 | callback(data); 23 | } 24 | }); 25 | } 26 | } 27 | }()); -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Auckland/Day 2/Full App/MSAUniApp/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Auckland/Day 2/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 2/Readme.md -------------------------------------------------------------------------------- /Auckland/Day 2/Web III/Readme.md: -------------------------------------------------------------------------------- 1 | # Continuous Deployment 2 | 3 | If you have your projects on GitHub, you can set up continuous deployment so that your web app is automatically deployed when you commit to the main branch 4 | 5 | To find out more, have a look through the section called 'Deploy files from a repository site like BitBucket, CodePlex, Dropbox, GitHub, or Mercurial' here- https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/ 6 | 7 | # Edge Tools 8 | 9 | Quick site scan your websites, generate screenshots and more using Edge Tools - https://dev.windows.com/en-us/microsoft-edge/tools/ 10 | 11 | # Visual Studio Team Services + GitHub 12 | 13 | To build GitHub hosted projects in VSTS (Visual Studio Team Services), follow the instructions here - https://msdn.microsoft.com/en-us/Library/vs/alm/Build/github/index 14 | 15 | # Connecting your API 16 | 17 | There are a few changes we need to make to make your API work with the frontend code: 18 | 19 | 1. In your ajax call in StudentModule.js, change the dataType of your ajax call from **jsonp** to **json** 20 | 2. In the same ajax call change the url being called to the url of *your* api 21 | 22 | ```javascript 23 | $.ajax({ 24 | type: "GET", 25 | dataType: "json", 26 | url: "http://[my-webapp-name-here].azurewebsites.net/api/Students", 27 | success: function (data) { 28 | callback(data); 29 | } 30 | }); 31 | ``` 32 | 33 | 3.) Change the property names being accessed in index.js when displaying back to screen 34 | ```javascript 35 | var lastnamecol = document.createElement('td'); 36 | lastnamecol.innerHTML = students[i].LastName; 37 | row.appendChild(lastnamecol); 38 | 39 | var firstnamecol = document.createElement('td'); 40 | firstnamecol.innerHTML = students[i].FirstMidName; 41 | row.appendChild(firstnamecol); 42 | 43 | var enrollmentdatecol = document.createElement('td'); 44 | enrollmentdatecol.innerHTML = students[i].EnrollmentDate; 45 | row.appendChild(enrollmentdatecol); 46 | ``` 47 | 48 | 4.) Change your **th** tags in **index.html** to match the new properties 49 | ```HTML 50 | 51 | 52 | Last Name 53 | First Name 54 | Enrollment Date 55 | 56 | 57 | ```` 58 | -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/Content/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | } 3 | 4 | /*select all the th elements inside t 5 | the table head and spaces them out!*/ 6 | .spaced-table>tbody>tr>td{ 7 | padding: 20px; 8 | } 9 | 10 | /*select all the th elements inside the 11 | table body and spaces them out!*/ 12 | .spaced-table>thead>tr>th{ 13 | padding: 40px; 14 | } 15 | -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/Index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
First NameLast NameCountry
35 | 36 | 37 | -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/Scripts/index.js: -------------------------------------------------------------------------------- 1 | // When the document is loaded, the DOMContentLoaded event occurs 2 | // We execute all our other logic after this occurs. 3 | document.addEventListener("DOMContentLoaded", function () { 4 | console.log("DOM loaded and ready to go!"); 5 | loadStudents(); 6 | }); 7 | 8 | // Used to load the student data - can actually do without this function 9 | // if you are not doing anything else in the load. 10 | function loadStudents() { 11 | StudentModule.getStudents(setupStudentsTable); 12 | } 13 | 14 | // This is the function we pass into StudentModule as the callback 15 | // It takes the data returned from the API call (studenList) and an input 16 | function setupStudentsTable(studentsList) { 17 | 18 | // Get a reference to the table body so we can add our rows in 19 | var studentTable = document.getElementById("studentList"); 20 | 21 | // Loop through all the student/name objects 22 | for (var i = 0; i < studentsList.length; i++) { 23 | //Create a new row element 24 | var row = document.createElement("tr"); 25 | 26 | //Create our data cells and append to row 27 | var firstNameCol = document.createElement("td"); 28 | firstNameCol.innerHTML = studentsList[i].name; 29 | row.appendChild(firstNameCol); 30 | 31 | var lastNameCol = document.createElement("td"); 32 | lastNameCol.innerHTML = studentsList[i].surname; 33 | row.appendChild(lastNameCol); 34 | 35 | var country = document.createElement("td"); 36 | country.innerHTML = studentsList[i].country; 37 | row.appendChild(country); 38 | 39 | // Append our rows to the table 40 | studentTable.appendChild(row); 41 | 42 | 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Authentication/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Auckland/Day 3/Authentication/scripts/studentmodule.js: -------------------------------------------------------------------------------- 1 | // We're using the module pattern here to make it easier to reuse 2 | // this bit of code and seperate out our namespaces. 3 | var StudentModule = (function () { 4 | 5 | // If you want to declare things that are private to the module, 6 | // simply declare them here without returning them 7 | var privatethingy = 10; 8 | 9 | // Only things that are returned from this closure is exposed 10 | return { 11 | getStudents: function (callback) { 12 | 13 | // $ means that the function is being called from JQuery 14 | // We pass the parameters for the api as an object 15 | // The success function is called when the data is recieved 16 | // The callback allows us to pass this data back out main js file. 17 | $.ajax({ 18 | type: "GET", 19 | dataType: "jsonp", 20 | url: "http://api.uinames.com/?amount=25", 21 | success: function (data) { 22 | callback(data); 23 | } 24 | }); 25 | } 26 | } 27 | }()); -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Cross Platform Development.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Cross Platform/Cross Platform Development.pptx -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "www/lib" 3 | } 4 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/.gitignore: -------------------------------------------------------------------------------- 1 | # Specifies intentionally untracked files to ignore when using Git 2 | # http://git-scm.com/docs/gitignore 3 | 4 | node_modules/ 5 | platforms/ 6 | plugins/ 7 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HelloIonic", 3 | "private": "true", 4 | "devDependencies": { 5 | "ionic": "driftyco/ionic-bower#1.1.1" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | MSAUniversity 4 | 5 | An Ionic Framework and Cordova project. 6 | 7 | 8 | Ionic Framework Team 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var bower = require('bower'); 4 | var concat = require('gulp-concat'); 5 | var sass = require('gulp-sass'); 6 | var minifyCss = require('gulp-minify-css'); 7 | var rename = require('gulp-rename'); 8 | var sh = require('shelljs'); 9 | 10 | var paths = { 11 | sass: ['./scss/**/*.scss'] 12 | }; 13 | 14 | gulp.task('default', ['sass']); 15 | 16 | gulp.task('sass', function(done) { 17 | gulp.src('./scss/ionic.app.scss') 18 | .pipe(sass()) 19 | .on('error', sass.logError) 20 | .pipe(gulp.dest('./www/css/')) 21 | .pipe(minifyCss({ 22 | keepSpecialComments: 0 23 | })) 24 | .pipe(rename({ extname: '.min.css' })) 25 | .pipe(gulp.dest('./www/css/')) 26 | .on('end', done); 27 | }); 28 | 29 | gulp.task('watch', function() { 30 | gulp.watch(paths.sass, ['sass']); 31 | }); 32 | 33 | gulp.task('install', ['git-check'], function() { 34 | return bower.commands.install() 35 | .on('log', function(data) { 36 | gutil.log('bower', gutil.colors.cyan(data.id), data.message); 37 | }); 38 | }); 39 | 40 | gulp.task('git-check', function(done) { 41 | if (!sh.which('git')) { 42 | console.log( 43 | ' ' + gutil.colors.red('Git is not installed.'), 44 | '\n Git, the version control system, is required to download Ionic.', 45 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', 46 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' 47 | ); 48 | process.exit(1); 49 | } 50 | done(); 51 | }); 52 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/ionic.project: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MSAUniversity", 3 | "app_id": "" 4 | } 5 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "msauniversity", 3 | "version": "1.1.1", 4 | "description": "MSAUniversity: An Ionic project", 5 | "dependencies": { 6 | "gulp": "^3.5.6", 7 | "gulp-sass": "^2.0.4", 8 | "gulp-concat": "^2.2.0", 9 | "gulp-minify-css": "^0.3.0", 10 | "gulp-rename": "^1.2.0" 11 | }, 12 | "devDependencies": { 13 | "bower": "^1.3.3", 14 | "gulp-util": "^2.2.14", 15 | "shelljs": "^0.3.0" 16 | }, 17 | "cordovaPlugins": [ 18 | "cordova-plugin-device", 19 | "cordova-plugin-console", 20 | "cordova-plugin-whitelist", 21 | "cordova-plugin-splashscreen", 22 | "cordova-plugin-statusbar", 23 | "ionic-plugin-keyboard" 24 | ], 25 | "cordovaPlatforms": [ 26 | "ios" 27 | ] 28 | } -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/scss/ionic.app.scss: -------------------------------------------------------------------------------- 1 | /* 2 | To customize the look and feel of Ionic, you can override the variables 3 | in ionic's _variables.scss file. 4 | 5 | For example, you might change some of the default colors: 6 | 7 | $light: #fff !default; 8 | $stable: #f8f8f8 !default; 9 | $positive: #387ef5 !default; 10 | $calm: #11c1f3 !default; 11 | $balanced: #33cd5f !default; 12 | $energized: #ffc900 !default; 13 | $assertive: #ef473a !default; 14 | $royal: #886aea !default; 15 | $dark: #444 !default; 16 | */ 17 | 18 | // The path for our ionicons font files, relative to the built CSS in www/css 19 | $ionicons-font-path: "../lib/ionic/fonts" !default; 20 | 21 | // Include all of Ionic 22 | @import "www/lib/ionic/scss/ionic"; 23 | 24 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/css/style.css: -------------------------------------------------------------------------------- 1 | /* Empty. Add your own CSS if you like */ 2 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/img/ionic.png -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/js/app.js: -------------------------------------------------------------------------------- 1 | // Ionic Starter App 2 | 3 | // angular.module is a global place for creating, registering and retrieving Angular modules 4 | // 'starter' is the name of this angular module example (also set in a attribute in index.html) 5 | // the 2nd parameter is an array of 'requires' 6 | // 'starter.controllers' is found in controllers.js 7 | angular.module('starter', ['ionic', 'starter.controllers']) 8 | 9 | .run(function($ionicPlatform) { 10 | $ionicPlatform.ready(function() { 11 | // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 12 | // for form inputs) 13 | if (window.cordova && window.cordova.plugins.Keyboard) { 14 | cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 15 | cordova.plugins.Keyboard.disableScroll(true); 16 | 17 | } 18 | if (window.StatusBar) { 19 | // org.apache.cordova.statusbar required 20 | StatusBar.styleDefault(); 21 | } 22 | }); 23 | }) 24 | 25 | .config(function($stateProvider, $urlRouterProvider) { 26 | $stateProvider 27 | 28 | .state('app', { 29 | url: '/app', 30 | abstract: true, 31 | templateUrl: 'templates/menu.html', 32 | controller: 'AppCtrl' 33 | }) 34 | 35 | .state('app.search', { 36 | url: '/search', 37 | views: { 38 | 'menuContent': { 39 | templateUrl: 'templates/search.html' 40 | } 41 | } 42 | }) 43 | 44 | .state('app.browse', { 45 | url: '/browse', 46 | views: { 47 | 'menuContent': { 48 | templateUrl: 'templates/browse.html' 49 | } 50 | } 51 | }) 52 | .state('app.playlists', { 53 | url: '/playlists', 54 | views: { 55 | 'menuContent': { 56 | templateUrl: 'templates/playlists.html', 57 | controller: 'PlaylistsCtrl' 58 | } 59 | } 60 | }) 61 | 62 | .state('app.single', { 63 | url: '/playlists/:student', 64 | views: { 65 | 'menuContent': { 66 | templateUrl: 'templates/playlist.html', 67 | controller: 'PlaylistCtrl' 68 | } 69 | } 70 | }); 71 | // if none of the above states are matched, use this as the fallback 72 | $urlRouterProvider.otherwise('/app/playlists'); 73 | }); 74 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/js/controllers.js: -------------------------------------------------------------------------------- 1 | angular.module('starter.controllers', []) 2 | 3 | .controller('AppCtrl', function($scope, $ionicModal, $timeout) { 4 | 5 | // With the new view caching in Ionic, Controllers are only called 6 | // when they are recreated or on app start, instead of every page change. 7 | // To listen for when this page is active (for example, to refresh data), 8 | // listen for the $ionicView.enter event: 9 | //$scope.$on('$ionicView.enter', function(e) { 10 | //}); 11 | 12 | // Form data for the login modal 13 | $scope.loginData = {}; 14 | 15 | // Create the login modal that we will use later 16 | $ionicModal.fromTemplateUrl('templates/login.html', { 17 | scope: $scope 18 | }).then(function(modal) { 19 | $scope.modal = modal; 20 | }); 21 | 22 | // Triggered in the login modal to close it 23 | $scope.closeLogin = function() { 24 | $scope.modal.hide(); 25 | }; 26 | 27 | // Open the login modal 28 | $scope.login = function() { 29 | $scope.modal.show(); 30 | }; 31 | 32 | // Perform the login action when the user submits the login form 33 | $scope.doLogin = function() { 34 | console.log('Doing login', $scope.loginData); 35 | 36 | // Simulate a login delay. Remove this and replace with your login 37 | // code if using a login system 38 | $timeout(function() { 39 | $scope.closeLogin(); 40 | }, 1000); 41 | }; 42 | }) 43 | 44 | .controller('PlaylistsCtrl', function($scope, $http) { 45 | // Get students 46 | $scope.students = []; 47 | $http.get('http://msauniversity.azurewebsites.net/api/Students').then(function (resp) { 48 | console.log('Success', resp); 49 | // For JSON responses, resp.data contains the result 50 | $scope.students = resp.data; 51 | }, function (err) { 52 | console.error('ERR', err.statusText); 53 | // err.status will contain the status code 54 | }); 55 | 56 | }) 57 | 58 | .controller('PlaylistCtrl', function($scope, $http, $stateParams) { 59 | // Parse JSON string passed by list 60 | var student = JSON.parse($stateParams.student); 61 | console.log('Opened ' + student.FirstMidName) 62 | 63 | $scope.student = student; 64 | }); 65 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/fonts/ionicons.woff -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_animations.scss: -------------------------------------------------------------------------------- 1 | 2 | // Slide up from the bottom, used for modals 3 | // ------------------------------- 4 | 5 | .slide-in-up { 6 | @include translate3d(0, 100%, 0); 7 | } 8 | .slide-in-up.ng-enter, 9 | .slide-in-up > .ng-enter { 10 | @include transition(all cubic-bezier(.1, .7, .1, 1) 400ms); 11 | } 12 | .slide-in-up.ng-enter-active, 13 | .slide-in-up > .ng-enter-active { 14 | @include translate3d(0, 0, 0); 15 | } 16 | 17 | .slide-in-up.ng-leave, 18 | .slide-in-up > .ng-leave { 19 | @include transition(all ease-in-out 250ms); 20 | } 21 | 22 | 23 | // Scale Out 24 | // Scale from hero (1 in this case) to zero 25 | // ------------------------------- 26 | 27 | @-webkit-keyframes scaleOut { 28 | from { -webkit-transform: scale(1); opacity: 1; } 29 | to { -webkit-transform: scale(0.8); opacity: 0; } 30 | } 31 | @keyframes scaleOut { 32 | from { transform: scale(1); opacity: 1; } 33 | to { transform: scale(0.8); opacity: 0; } 34 | } 35 | 36 | 37 | // Super Scale In 38 | // Scale from super (1.x) to duper (1 in this case) 39 | // ------------------------------- 40 | 41 | @-webkit-keyframes superScaleIn { 42 | from { -webkit-transform: scale(1.2); opacity: 0; } 43 | to { -webkit-transform: scale(1); opacity: 1 } 44 | } 45 | @keyframes superScaleIn { 46 | from { transform: scale(1.2); opacity: 0; } 47 | to { transform: scale(1); opacity: 1; } 48 | } 49 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_backdrop.scss: -------------------------------------------------------------------------------- 1 | 2 | .backdrop { 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | z-index: $z-index-backdrop; 7 | 8 | width: 100%; 9 | height: 100%; 10 | 11 | background-color: $loading-backdrop-bg-color; 12 | 13 | visibility: hidden; 14 | opacity: 0; 15 | 16 | &.visible { 17 | visibility: visible; 18 | } 19 | &.active { 20 | opacity: 1; 21 | } 22 | 23 | @include transition($loading-backdrop-fadein-duration opacity linear); 24 | } 25 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .badge { 8 | @include badge-style($badge-default-bg, $badge-default-text); 9 | z-index: $z-index-badge; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: $badge-border-radius; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: $badge-font-weight; 18 | font-size: $badge-font-size; 19 | line-height: $badge-line-height; 20 | 21 | &:empty { 22 | display: none; 23 | } 24 | } 25 | 26 | //Be sure to override specificity of rule that 'badge color matches tab color by default' 27 | .tabs .tab-item .badge, 28 | .badge { 29 | &.badge-light { 30 | @include badge-style($badge-light-bg, $badge-light-text); 31 | } 32 | &.badge-stable { 33 | @include badge-style($badge-stable-bg, $badge-stable-text); 34 | } 35 | &.badge-positive { 36 | @include badge-style($badge-positive-bg, $badge-positive-text); 37 | } 38 | &.badge-calm { 39 | @include badge-style($badge-calm-bg, $badge-calm-text); 40 | } 41 | &.badge-assertive { 42 | @include badge-style($badge-assertive-bg, $badge-assertive-text); 43 | } 44 | &.badge-balanced { 45 | @include badge-style($badge-balanced-bg, $badge-balanced-text); 46 | } 47 | &.badge-energized { 48 | @include badge-style($badge-energized-bg, $badge-energized-text); 49 | } 50 | &.badge-royal { 51 | @include badge-style($badge-royal-bg, $badge-royal-text); 52 | } 53 | &.badge-dark { 54 | @include badge-style($badge-dark-bg, $badge-dark-text); 55 | } 56 | } 57 | 58 | // Quick fix for labels/badges in buttons 59 | .button .badge { 60 | position: relative; 61 | top: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_button-bar.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .button-bar { 8 | @include display-flex(); 9 | @include flex(1); 10 | width: 100%; 11 | 12 | &.button-bar-inline { 13 | display: block; 14 | width: auto; 15 | 16 | @include clearfix(); 17 | 18 | > .button { 19 | width: auto; 20 | display: inline-block; 21 | float: left; 22 | } 23 | } 24 | } 25 | 26 | .button-bar > .button { 27 | @include flex(1); 28 | display: block; 29 | 30 | overflow: hidden; 31 | 32 | padding: 0 16px; 33 | 34 | width: 0; 35 | 36 | border-width: 1px 0px 1px 1px; 37 | border-radius: 0; 38 | text-align: center; 39 | text-overflow: ellipsis; 40 | white-space: nowrap; 41 | 42 | &:before, 43 | .icon:before { 44 | line-height: 44px; 45 | } 46 | 47 | &:first-child { 48 | border-radius: $button-border-radius 0px 0px $button-border-radius; 49 | } 50 | &:last-child { 51 | border-right-width: 1px; 52 | border-radius: 0px $button-border-radius $button-border-radius 0px; 53 | } 54 | } 55 | 56 | .button-bar > .button-small { 57 | &:before, 58 | .icon:before { 59 | line-height: 28px; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_loading.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .loading-container { 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | right: 0; 12 | bottom: 0; 13 | 14 | z-index: $z-index-loading; 15 | 16 | @include display-flex(); 17 | @include justify-content(center); 18 | @include align-items(center); 19 | 20 | @include transition(0.2s opacity linear); 21 | visibility: hidden; 22 | opacity: 0; 23 | 24 | &:not(.visible) .icon, 25 | &:not(.visible) .spinner{ 26 | display: none; 27 | } 28 | &.visible { 29 | visibility: visible; 30 | } 31 | &.active { 32 | opacity: 1; 33 | } 34 | 35 | .loading { 36 | padding: $loading-padding; 37 | 38 | border-radius: $loading-border-radius; 39 | background-color: $loading-bg-color; 40 | 41 | color: $loading-text-color; 42 | 43 | text-align: center; 44 | text-overflow: ellipsis; 45 | font-size: $loading-font-size; 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | color: $loading-text-color; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_menu.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | 8 | .menu { 9 | position: absolute; 10 | top: 0; 11 | bottom: 0; 12 | z-index: $z-index-menu; 13 | overflow: hidden; 14 | 15 | min-height: 100%; 16 | max-height: 100%; 17 | width: $menu-width; 18 | 19 | background-color: $menu-bg; 20 | 21 | .scroll-content { 22 | z-index: $z-index-menu-scroll-content; 23 | } 24 | 25 | .bar-header { 26 | z-index: $z-index-menu-bar-header; 27 | } 28 | } 29 | 30 | .menu-content { 31 | @include transform(none); 32 | box-shadow: $menu-side-shadow; 33 | } 34 | 35 | .menu-open .menu-content .pane, 36 | .menu-open .menu-content .scroll-content { 37 | pointer-events: none; 38 | overflow: hidden; 39 | } 40 | 41 | .grade-b .menu-content, 42 | .grade-c .menu-content { 43 | @include box-sizing(content-box); 44 | right: -1px; 45 | left: -1px; 46 | border-right: 1px solid #ccc; 47 | border-left: 1px solid #ccc; 48 | box-shadow: none; 49 | } 50 | 51 | .menu-left { 52 | left: 0; 53 | } 54 | 55 | .menu-right { 56 | right: 0; 57 | } 58 | 59 | .aside-open.aside-resizing .menu-right { 60 | display: none; 61 | } 62 | 63 | .menu-animated { 64 | @include transition-transform($menu-animation-speed ease); 65 | } 66 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_modal.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Modals 4 | * -------------------------------------------------- 5 | * Modals are independent windows that slide in from off-screen. 6 | */ 7 | 8 | .modal-backdrop, 9 | .modal-backdrop-bg { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | z-index: $z-index-modal; 14 | width: 100%; 15 | height: 100%; 16 | } 17 | 18 | .modal-backdrop-bg { 19 | pointer-events: none; 20 | } 21 | 22 | .modal { 23 | display: block; 24 | position: absolute; 25 | top: 0; 26 | z-index: $z-index-modal; 27 | overflow: hidden; 28 | min-height: 100%; 29 | width: 100%; 30 | background-color: $modal-bg-color; 31 | } 32 | 33 | @media (min-width: $modal-inset-mode-break-point) { 34 | // inset mode is when the modal doesn't fill the entire 35 | // display but instead is centered within a large display 36 | .modal { 37 | top: $modal-inset-mode-top; 38 | right: $modal-inset-mode-right; 39 | bottom: $modal-inset-mode-bottom; 40 | left: $modal-inset-mode-left; 41 | min-height: $modal-inset-mode-min-height; 42 | width: (100% - $modal-inset-mode-left - $modal-inset-mode-right); 43 | } 44 | 45 | .modal.ng-leave-active { 46 | bottom: 0; 47 | } 48 | 49 | // remove ios header padding from inset header 50 | .platform-ios.platform-cordova .modal-wrapper .modal { 51 | .bar-header:not(.bar-subheader) { 52 | height: $bar-height; 53 | > * { 54 | margin-top: 0; 55 | } 56 | } 57 | .tabs-top > .tabs, 58 | .tabs.tabs-top { 59 | top: $bar-height; 60 | } 61 | .has-header, 62 | .bar-subheader { 63 | top: $bar-height; 64 | } 65 | .has-subheader { 66 | top: $bar-height + $bar-subheader-height; 67 | } 68 | .has-header.has-tabs-top { 69 | top: $bar-height + $tabs-height; 70 | } 71 | .has-header.has-subheader.has-tabs-top { 72 | top: $bar-height + $bar-subheader-height + $tabs-height; 73 | } 74 | } 75 | 76 | .modal-backdrop-bg { 77 | @include transition(opacity 300ms ease-in-out); 78 | background-color: $modal-backdrop-bg-active; 79 | opacity: 0; 80 | } 81 | 82 | .active .modal-backdrop-bg { 83 | opacity: 0.5; 84 | } 85 | } 86 | 87 | // disable clicks on all but the modal 88 | .modal-open { 89 | pointer-events: none; 90 | 91 | .modal, 92 | .modal-backdrop { 93 | pointer-events: auto; 94 | } 95 | // prevent clicks on modal when loading overlay is active though 96 | &.loading-active { 97 | .modal, 98 | .modal-backdrop { 99 | pointer-events: none; 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_platform.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Platform 4 | * -------------------------------------------------- 5 | * Platform specific tweaks 6 | */ 7 | 8 | .platform-ios.platform-cordova { 9 | // iOS has a status bar which sits on top of the header. 10 | // Bump down everything to make room for it. However, if 11 | // if its in Cordova, and set to fullscreen, then disregard the bump. 12 | &:not(.fullscreen) { 13 | .bar-header:not(.bar-subheader) { 14 | height: $bar-height + $ios-statusbar-height; 15 | 16 | &.item-input-inset .item-input-wrapper { 17 | margin-top: 19px !important; 18 | } 19 | 20 | > * { 21 | margin-top: $ios-statusbar-height; 22 | } 23 | } 24 | .tabs-top > .tabs, 25 | .tabs.tabs-top { 26 | top: $bar-height + $ios-statusbar-height; 27 | } 28 | 29 | .has-header, 30 | .bar-subheader { 31 | top: $bar-height + $ios-statusbar-height; 32 | } 33 | .has-subheader { 34 | top: $bar-height + $bar-subheader-height + $ios-statusbar-height; 35 | } 36 | .has-header.has-tabs-top { 37 | top: $bar-height + $tabs-height + $ios-statusbar-height; 38 | } 39 | .has-header.has-subheader.has-tabs-top { 40 | top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height; 41 | } 42 | } 43 | .popover{ 44 | .bar-header:not(.bar-subheader) { 45 | height: $bar-height; 46 | &.item-input-inset .item-input-wrapper { 47 | margin-top: -1px; 48 | } 49 | > * { 50 | margin-top: 0; 51 | } 52 | } 53 | .has-header, 54 | .bar-subheader { 55 | top: $bar-height; 56 | } 57 | .has-subheader { 58 | top: $bar-height + $bar-subheader-height; 59 | } 60 | } 61 | &.status-bar-hide { 62 | // Cordova doesn't adjust the body height correctly, this makes up for it 63 | margin-bottom: 20px; 64 | } 65 | } 66 | 67 | @media (orientation:landscape) { 68 | .platform-ios.platform-browser.platform-ipad { 69 | position: fixed; // required for iPad 7 Safari 70 | } 71 | } 72 | 73 | .platform-c:not(.enable-transitions) * { 74 | // disable transitions on grade-c devices (Android 2) 75 | -webkit-transition: none !important; 76 | transition: none !important; 77 | } 78 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_popup.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Popups 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .popup-container { 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | bottom: 0; 12 | right: 0; 13 | background: rgba(0,0,0,0); 14 | 15 | @include display-flex(); 16 | @include justify-content(center); 17 | @include align-items(center); 18 | 19 | z-index: $z-index-popup; 20 | 21 | // Start hidden 22 | visibility: hidden; 23 | &.popup-showing { 24 | visibility: visible; 25 | } 26 | 27 | &.popup-hidden .popup { 28 | @include animation-name(scaleOut); 29 | @include animation-duration($popup-leave-animation-duration); 30 | @include animation-timing-function(ease-in-out); 31 | @include animation-fill-mode(both); 32 | } 33 | 34 | &.active .popup { 35 | @include animation-name(superScaleIn); 36 | @include animation-duration($popup-enter-animation-duration); 37 | @include animation-timing-function(ease-in-out); 38 | @include animation-fill-mode(both); 39 | } 40 | 41 | .popup { 42 | width: $popup-width; 43 | max-width: 100%; 44 | max-height: 90%; 45 | 46 | border-radius: $popup-border-radius; 47 | background-color: $popup-background-color; 48 | 49 | @include display-flex(); 50 | @include flex-direction(column); 51 | } 52 | 53 | input, 54 | textarea { 55 | width: 100%; 56 | } 57 | } 58 | 59 | .popup-head { 60 | padding: 15px 10px; 61 | border-bottom: 1px solid #eee; 62 | text-align: center; 63 | } 64 | .popup-title { 65 | margin: 0; 66 | padding: 0; 67 | font-size: 15px; 68 | } 69 | .popup-sub-title { 70 | margin: 5px 0 0 0; 71 | padding: 0; 72 | font-weight: normal; 73 | font-size: 11px; 74 | } 75 | .popup-body { 76 | padding: 10px; 77 | overflow: auto; 78 | } 79 | 80 | .popup-buttons { 81 | @include display-flex(); 82 | @include flex-direction(row); 83 | padding: 10px; 84 | min-height: $popup-button-min-height + 20; 85 | 86 | .button { 87 | @include flex(1); 88 | display: block; 89 | min-height: $popup-button-min-height; 90 | border-radius: $popup-button-border-radius; 91 | line-height: $popup-button-line-height; 92 | 93 | margin-right: 5px; 94 | &:last-child { 95 | margin-right: 0px; 96 | } 97 | } 98 | } 99 | 100 | .popup-open { 101 | pointer-events: none; 102 | 103 | &.modal-open .modal { 104 | pointer-events: none; 105 | } 106 | 107 | .popup-backdrop, .popup { 108 | pointer-events: auto; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Progress 4 | * -------------------------------------------------- 5 | */ 6 | 7 | progress { 8 | display: block; 9 | margin: $progress-margin; 10 | width: $progress-width; 11 | } 12 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_radio.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .item-radio { 8 | padding: 0; 9 | 10 | &:hover { 11 | cursor: pointer; 12 | } 13 | } 14 | 15 | .item-radio .item-content { 16 | /* give some room to the right for the checkmark icon */ 17 | padding-right: $item-padding * 4; 18 | } 19 | 20 | .item-radio .radio-icon { 21 | /* checkmark icon will be hidden by default */ 22 | position: absolute; 23 | top: 0; 24 | right: 0; 25 | z-index: $z-index-item-radio; 26 | visibility: hidden; 27 | padding: $item-padding - 2; 28 | height: 100%; 29 | font-size: 24px; 30 | } 31 | 32 | .item-radio input { 33 | /* hide any radio button inputs elements (the ugly circles) */ 34 | position: absolute; 35 | left: -9999px; 36 | 37 | &:checked + .radio-content .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked + .radio-content .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_slide-box.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .slider { 8 | position: relative; 9 | visibility: hidden; 10 | // Make sure items don't scroll over ever 11 | overflow: hidden; 12 | } 13 | 14 | .slider-slides { 15 | position: relative; 16 | height: 100%; 17 | } 18 | 19 | .slider-slide { 20 | position: relative; 21 | display: block; 22 | float: left; 23 | width: 100%; 24 | height: 100%; 25 | vertical-align: top; 26 | } 27 | 28 | .slider-slide-image { 29 | > img { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .slider-pager { 35 | position: absolute; 36 | bottom: 20px; 37 | z-index: $z-index-slider-pager; 38 | width: 100%; 39 | height: 15px; 40 | text-align: center; 41 | 42 | .slider-pager-page { 43 | display: inline-block; 44 | margin: 0px 3px; 45 | width: 15px; 46 | color: #000; 47 | text-decoration: none; 48 | 49 | opacity: 0.3; 50 | 51 | &.active { 52 | @include transition(opacity 0.4s ease-in); 53 | opacity: 1; 54 | } 55 | } 56 | } 57 | 58 | //Disable animate service animations 59 | .slider-slide, 60 | .slider-pager-page { 61 | &.ng-enter, 62 | &.ng-leave, 63 | &.ng-animate { 64 | -webkit-transition: none !important; 65 | transition: none !important; 66 | } 67 | &.ng-animate { 68 | -webkit-animation: none 0s; 69 | animation: none 0s; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/_spinner.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Spinners 3 | * -------------------------------------------------- 4 | */ 5 | 6 | .spinner { 7 | svg { 8 | width: $spinner-width; 9 | height: $spinner-height; 10 | } 11 | 12 | stroke: $spinner-default-stroke; 13 | fill: $spinner-default-fill; 14 | 15 | &.spinner-light { 16 | stroke: $spinner-light-stroke; 17 | fill: $spinner-light-fill; 18 | } 19 | &.spinner-stable { 20 | stroke: $spinner-stable-stroke; 21 | fill: $spinner-stable-fill; 22 | } 23 | &.spinner-positive { 24 | stroke: $spinner-positive-stroke; 25 | fill: $spinner-positive-fill; 26 | } 27 | &.spinner-calm { 28 | stroke: $spinner-calm-stroke; 29 | fill: $spinner-calm-fill; 30 | } 31 | &.spinner-balanced { 32 | stroke: $spinner-balanced-stroke; 33 | fill: $spinner-balanced-fill; 34 | } 35 | &.spinner-assertive { 36 | stroke: $spinner-assertive-stroke; 37 | fill: $spinner-assertive-fill; 38 | } 39 | &.spinner-energized { 40 | stroke: $spinner-energized-stroke; 41 | fill: $spinner-energized-fill; 42 | } 43 | &.spinner-royal { 44 | stroke: $spinner-royal-stroke; 45 | fill: $spinner-royal-fill; 46 | } 47 | &.spinner-dark { 48 | stroke: $spinner-dark-stroke; 49 | fill: $spinner-dark-fill; 50 | } 51 | } 52 | 53 | .spinner-android { 54 | stroke: #4b8bf4; 55 | } 56 | 57 | .spinner-ios, 58 | .spinner-ios-small { 59 | stroke: #69717d; 60 | } 61 | 62 | .spinner-spiral { 63 | .stop1 { 64 | stop-color: $spinner-light-fill; 65 | stop-opacity: 0; 66 | } 67 | 68 | &.spinner-light { 69 | .stop1 { 70 | stop-color: $spinner-default-fill; 71 | } 72 | .stop2 { 73 | stop-color: $spinner-light-fill; 74 | } 75 | } 76 | &.spinner-stable .stop2 { 77 | stop-color: $spinner-stable-fill; 78 | } 79 | &.spinner-positive .stop2 { 80 | stop-color: $spinner-positive-fill; 81 | } 82 | &.spinner-calm .stop2 { 83 | stop-color: $spinner-calm-fill; 84 | } 85 | &.spinner-balanced .stop2 { 86 | stop-color: $spinner-balanced-fill; 87 | } 88 | &.spinner-assertive .stop2 { 89 | stop-color: $spinner-assertive-fill; 90 | } 91 | &.spinner-energized .stop2 { 92 | stop-color: $spinner-energized-fill; 93 | } 94 | &.spinner-royal .stop2 { 95 | stop-color: $spinner-royal-fill; 96 | } 97 | &.spinner-dark .stop2 { 98 | stop-color: $spinner-dark-fill; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/ionic.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @import 4 | // Ionicons 5 | "ionicons/ionicons.scss", 6 | 7 | // Variables 8 | "mixins", 9 | "variables", 10 | 11 | // Base 12 | "reset", 13 | "scaffolding", 14 | "type", 15 | 16 | // Components 17 | "action-sheet", 18 | "backdrop", 19 | "bar", 20 | "tabs", 21 | "menu", 22 | "modal", 23 | "popover", 24 | "popup", 25 | "loading", 26 | "items", 27 | "list", 28 | "badge", 29 | "slide-box", 30 | "refresher", 31 | "spinner", 32 | 33 | // Forms 34 | "form", 35 | "checkbox", 36 | "toggle", 37 | "radio", 38 | "range", 39 | "select", 40 | "progress", 41 | 42 | // Buttons 43 | "button", 44 | "button-bar", 45 | 46 | // Util 47 | "grid", 48 | "util", 49 | "platform", 50 | 51 | // Animations 52 | "animations", 53 | "transitions"; 54 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/ionicons/_ionicons-font.scss: -------------------------------------------------------------------------------- 1 | // Ionicons Font Path 2 | // -------------------------- 3 | 4 | @font-face { 5 | font-family: $ionicons-font-family; 6 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}"); 7 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"), 8 | url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"), 9 | url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), 10 | url("#{$ionicons-font-path}/ionicons.woff") format("woff"), /* for WP8 */ 11 | url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | 16 | .ion { 17 | display: inline-block; 18 | font-family: $ionicons-font-family; 19 | speak: none; 20 | font-style: normal; 21 | font-weight: normal; 22 | font-variant: normal; 23 | text-transform: none; 24 | text-rendering: auto; 25 | line-height: 1; 26 | -webkit-font-smoothing: antialiased; 27 | -moz-osx-font-smoothing: grayscale; 28 | } 29 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/scss/ionicons/ionicons.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @import "ionicons-variables"; 3 | /*! 4 | Ionicons, v2.0.1 5 | Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ 6 | https://twitter.com/benjsperry https://twitter.com/ionicframework 7 | MIT License: https://github.com/driftyco/ionicons 8 | 9 | Android-style icons originally built by Google’s 10 | Material Design Icons: https://github.com/google/material-design-icons 11 | used under CC BY http://creativecommons.org/licenses/by/4.0/ 12 | Modified icons to fit ionicon’s grid from original. 13 | */ 14 | 15 | @import "ionicons-font"; 16 | @import "ionicons-icons"; 17 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/lib/ionic/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1.1", 3 | "codename": "yttrium-yeti", 4 | "date": "2015-11-05", 5 | "time": "21:31:24" 6 | } 7 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/browse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Browse

4 |
5 |
6 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Login

4 |
5 | 6 |
7 |
8 | 9 |
10 |
11 | 15 | 19 | 22 |
23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Left

18 |
19 | 20 | 21 | 22 | Login 23 | 24 | 25 | Search 26 | 27 | 28 | Browse 29 | 30 | 31 | Playlists 32 | 33 | 34 | 35 |
36 |
37 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/playlist.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

{{student.FirstMidName}} {{student.LastName}}

4 |
Enrolment Date: {{student.EnrollmentDate | date : fullDate}}
5 |
6 |
7 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/playlists.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{student.FirstMidName}} {{student.LastName}} 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Ionic Project/MSAUniversity/www/templates/search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Search

4 |
5 |
6 | -------------------------------------------------------------------------------- /Auckland/Day 3/Cross Platform/Readme.md: -------------------------------------------------------------------------------- 1 | *Learn Ionic 2 | Ionic Tutorial: http://ionicframework.com/docs/guide/preface.html 3 | 4 | *Development Tools 5 | Visual Studio Code: https://code.visualstudio.com -------------------------------------------------------------------------------- /Auckland/Day 3/Native App/MSA Weather/About.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 29 | 30 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Auckland/Day 3/jQuery Plugins/jQueryPluginDemo/js/fakeLoader.min.js: -------------------------------------------------------------------------------- 1 | !function (i) { function s() { var s = i(window).width(), c = i(window).height(), d = i(".fl").outerWidth(), e = i(".fl").outerHeight(); i(".fl").css({ position: "absolute", left: s / 2 - d / 2, top: c / 2 - e / 2 }) } i.fn.fakeLoader = function (c) { var d = i.extend({ timeToHide: 1200, pos: "fixed", top: "0px", left: "0px", width: "100%", height: "100%", zIndex: "999", bgColor: "#2ecc71", spinner: "spinner7", imagePath: "" }, c), e = '
', l = '
', n = '
', v = '
', a = '
', r = '
', t = '
', o = i(this), h = { position: d.pos, width: d.width, height: d.height, top: d.top, left: d.left }; return o.css(h), o.each(function () { var i = d.spinner; switch (i) { case "spinner1": o.html(e); break; case "spinner2": o.html(l); break; case "spinner3": o.html(n); break; case "spinner4": o.html(v); break; case "spinner5": o.html(a); break; case "spinner6": o.html(r); break; case "spinner7": o.html(t); break; default: o.html(e) } "" != d.imagePath && o.html('
'), s() }), setTimeout(function () { i(o).fadeOut() }, d.timeToHide), this.css({ backgroundColor: d.bgColor, zIndex: d.zIndex }) }, i(window).load(function () { s(), i(window).resize(function () { s() }) }) }(jQuery); -------------------------------------------------------------------------------- /Auckland/Pre Day 2/Readme.md: -------------------------------------------------------------------------------- 1 | #Pre day 2 requirements 2 | 3 | Please read through all of this and make sure you have satisfied the requirements 4 | 5 | ## 1. Update Microsoft SQL Server 6 | 7 | Go to Tools > Extensions and Updates. Click on "Updates" (down the left hand side) and update the one to do with Microsoft SQL Server. Here's what it looks like, yours may be different: 8 | 9 | ![1-1](/Others/_images/Pre day 2/1-1.PNG) 10 | 11 | ## 2. Create an Empty ASP.NET Web Application with Web API 12 | 13 | We found that quite a few people were unable to do this on day 1. Make sure you are able to create an Empty ASP.NET Web Application with Web API ticked, like this: 14 | 15 | ![2-2](/Others/_images/Pre day 2/2-2.PNG) 16 | 17 | After selecting the above, this should appear: 18 | 19 | ![2-3](/Others/_images/Pre day 2/2-3.PNG) 20 | 21 | If you can do this, then you are all ready to go for day 2. However, if the second image does not show up for you, open up control panel and go to Programs and Features. Click on "Microsoft Visual Studio xxxx" (whatever version yours is, it should ideally be 2015) and click on "Change". Once that is loaded, click on "Modify". Search for "Microsoft Web Developer Tools", and *make sure that box is ticked*! 22 | 23 | ![2-1](/Others/_images/Pre day 2/2-1.PNG) 24 | 25 | Then, click on Update. After the update is done, restart your computer and try to create a new empty project with Web API ticked, like the images above. 26 | 27 | If the second image still does not show up for you even after doing that (you're probably on an earlier VS version), try the method suggested here https://msdn.microsoft.com/en-us/library/ff521558(v=vs.110).aspx 28 | -------------------------------------------------------------------------------- /Auckland/Readme.md: -------------------------------------------------------------------------------- 1 | # Auckland Training Events 2 | 3 | Auckland training is divided into three days: 4 | 5 | ## 1. Day 1 6 | 7 | Day 1 will focus on introducing the students to MSA Phase 2, talking about the assessments and assessment scenarios. We will then dive into writing a Web App in Visual Studio. 8 | 9 | ## 2. Day 2 10 | 11 | You'll be making your very own web API on day 2, connected to a database that's hosted online with MySQL. We will then connect the front end you made on day 1 to your web API. Navigate to the Day 2 folder to have a look at what's covered. 12 | 13 | ## 3. Day 3 14 | -------------------------------------------------------------------------------- /Christchurch/Day 1 Complete/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*padding-top: 60px;*/ 3 | } 4 | /*@media (max-width: 979px) { 5 | body { 6 | padding-top: 0px; 7 | } 8 | }*/ 9 | 10 | .spaced-table>thead>tr>th{ 11 | padding:20px 20px; 12 | } 13 | 14 | .spaced-table>tbody>tr>td{ 15 | padding: 40px 20px; 16 | vertical-align:middle; /*when you add button it gets weird so need this*/ 17 | } 18 | 19 | .spaced-table>tbody>tr{ 20 | cursor:pointer; 21 | } 22 | 23 | #loadingscreen{ 24 | height:100vh; 25 | background-color:#5c2d91; 26 | /*display:none;*/ 27 | text-align:center; 28 | position:absolute; 29 | 30 | -webkit-transform-style: preserve-3d; 31 | transform-style: preserve-3d; 32 | } 33 | 34 | #loadinganim{ 35 | color:#fff; 36 | font-size:larger; 37 | margin: 0 auto; 38 | position: relative; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | } 42 | -------------------------------------------------------------------------------- /Christchurch/Day 1 Complete/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Students 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 23 |
24 |
25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
Last NameFirst NameCountry
38 | 39 |
40 |
41 | 42 | 43 | -------------------------------------------------------------------------------- /Christchurch/Day 1 Complete/scripts/StudentModule.js: -------------------------------------------------------------------------------- 1 | // We've sepearated out all the functions related to making the AJAX calls to the API 2 | // Just keeps things tidy, allows us to keep some things private 3 | var StudentModule = (function () { 4 | 5 | // Return anything that you want to expose outside the closure 6 | return { 7 | getStudents: function (callback) { 8 | 9 | $.ajax({ 10 | type: "GET", 11 | dataType: "jsonp", 12 | url: "http://api.uinames.com/?amount=25", 13 | success: function(data){ 14 | console.log(data); 15 | callback(data); 16 | } 17 | }); 18 | 19 | } 20 | }; 21 | }()); -------------------------------------------------------------------------------- /Christchurch/Day 1 Complete/scripts/index.js: -------------------------------------------------------------------------------- 1 | // This event triggers on page load 2 | document.addEventListener("DOMContentLoaded", function () { 3 | console.log("This works!"); 4 | loadStudents(); 5 | }); 6 | 7 | function loadStudents(){ 8 | 9 | // We need a reference to the div/table that we are going to chuck our data into 10 | var studentsTable = document.getElementById("tblstudentcontent"); 11 | 12 | StudentModule.getStudents(function (studentsList) { 13 | setupStudentsTable(studentsList); 14 | }); 15 | 16 | // This is the callback for when the data comes back in the studentmodule 17 | function setupStudentsTable(students) { 18 | console.log(students); 19 | for (i = 0; i < students.length; i++) { 20 | 21 | // Create row 22 | var row = document.createElement('tr'); 23 | 24 | // Add the columns in the row (td / data cells) 25 | var lastnamecol = document.createElement('td'); 26 | lastnamecol.innerHTML = students[i].surname; 27 | row.appendChild(lastnamecol); 28 | 29 | var firstnamecol = document.createElement('td'); 30 | firstnamecol.innerHTML = students[i].name; 31 | row.appendChild(firstnamecol); 32 | 33 | var enrollmentdatecol = document.createElement('td'); 34 | enrollmentdatecol.innerHTML = students[i].country; 35 | row.appendChild(enrollmentdatecol); 36 | 37 | // Append the row to the end of the table 38 | studentsTable.appendChild(row); 39 | 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSAUniApp", "MSAUniApp\MSAUniApp.csproj", "{8FBA1F48-552B-427F-BDA5-05EAADD64447}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {8FBA1F48-552B-427F-BDA5-05EAADD64447}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web.Http; 5 | using System.Web.Http.Cors; 6 | 7 | namespace MSAUniApp 8 | { 9 | public static class WebApiConfig 10 | { 11 | public static void Register(HttpConfiguration config) 12 | { 13 | // Web API configuration and services 14 | 15 | // The below 2 lines states that any origin can access our API 16 | // For more info: 17 | var cors = new EnableCorsAttribute("*", "*", "*"); 18 | config.EnableCors(cors); 19 | 20 | // Web API routes 21 | config.MapHttpAttributeRoutes(); 22 | 23 | config.Routes.MapHttpRoute( 24 | name: "DefaultApi", 25 | routeTemplate: "api/{controller}/{id}", 26 | defaults: new { id = RouteParameter.Optional } 27 | ); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Content/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*padding-top: 60px;*/ 3 | } 4 | /*@media (max-width: 979px) { 5 | body { 6 | padding-top: 0px; 7 | } 8 | }*/ 9 | 10 | .spaced-table>thead>tr>th{ 11 | padding:20px 20px; 12 | } 13 | 14 | .spaced-table>tbody>tr>td{ 15 | padding: 40px 20px; 16 | vertical-align:middle; /*when you add button it gets weird so need this*/ 17 | } 18 | 19 | .spaced-table>tbody>tr{ 20 | cursor:pointer; 21 | } 22 | 23 | #loadingscreen{ 24 | height:100vh; 25 | background-color:#5c2d91; 26 | /*display:none;*/ 27 | text-align:center; 28 | position:absolute; 29 | 30 | -webkit-transform-style: preserve-3d; 31 | transform-style: preserve-3d; 32 | } 33 | 34 | #loadinganim{ 35 | color:#fff; 36 | font-size:larger; 37 | margin: 0 auto; 38 | position: relative; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | } 42 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Create.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Create student 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Create student

35 |
36 |
37 | 38 | 39 |
40 |
41 | 42 | 43 |
44 |
45 | 46 | 47 |
48 |
49 | 50 | 51 |
52 |
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Detail.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Student details 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Student details loading...

35 |

Student details

36 |

Student last name:

37 |

38 |

Student first name:

39 |

40 |

Student enrollment date:

41 |

42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Edit.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Edit student 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Edit student details

35 | 53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MSAUniApp.WebApiApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Routing; 7 | 8 | namespace MSAUniApp 9 | { 10 | public class WebApiApplication : System.Web.HttpApplication 11 | { 12 | protected void Application_Start() 13 | { 14 | GlobalConfiguration.Configure(WebApiConfig.Register); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Students 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 32 |
33 |
34 | + Create a student 35 |
36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |

Students table loading...

50 |
51 |
52 | 53 | 54 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Models/Course.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel.DataAnnotations.Schema; 5 | using System.Linq; 6 | using System.Web; 7 | 8 | namespace MSAUniApp.Models 9 | { 10 | public class Course 11 | { 12 | [DatabaseGenerated(DatabaseGeneratedOption.None)] 13 | public int CourseID { get; set; } 14 | public string Title { get; set; } 15 | public int Credits { get; set; } 16 | 17 | [JsonIgnore] 18 | public virtual ICollection Enrollments { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Models/Enrollment.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace MSAUniApp.Models 8 | { 9 | public enum Grade 10 | { 11 | A, B, C, D, F 12 | } 13 | 14 | public class Enrollment 15 | { 16 | public int EnrollmentID { get; set; } 17 | public int CourseID { get; set; } 18 | public int StudentID { get; set; } 19 | 20 | public Grade? Grade { get; set; } 21 | 22 | [JsonIgnore] 23 | public virtual Course Course { get; set; } 24 | [JsonIgnore] 25 | public virtual Student Student { get; set; } 26 | } 27 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Models/Student.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace MSAUniApp.Models 8 | { 9 | public class Student 10 | { 11 | public int ID { get; set; } 12 | public string LastName { get; set; } 13 | public string FirstMidName { get; set; } 14 | public DateTime EnrollmentDate { get; set; } 15 | 16 | [JsonIgnore] 17 | public virtual ICollection Enrollments { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MSAUniApp")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MSAUniApp")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8fba1f48-552b-427f-bda5-05eaadd64447")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Scripts/createpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | setupStudentSubmit(); 3 | setupReturn(); 4 | }); 5 | 6 | function setupStudentSubmit() { 7 | 8 | //Creating student from form parameters 9 | 10 | var form = document.forms.create; 11 | // Need to add our own custom event for form submission 12 | form.onsubmit = function (e) { 13 | // ... and prevent the default action from occuring 14 | e.preventDefault(); 15 | 16 | //Creating student from form parameters 17 | var newStudent = { 18 | // Access the data in the fields with .value 19 | lastname: document.getElementById("LastNameinput").value, 20 | firstmidname: document.getElementById("FirstNameinput").value, 21 | enrollmentdate: document.getElementById("EnrollmentDateinput").value 22 | } 23 | 24 | // Take me back home when done! 25 | StudentModule.addStudent(newStudent, function () { 26 | window.location.href = "index.html"; 27 | }); 28 | } 29 | 30 | }; 31 | 32 | // Add event listener, cancel button will take you back to home page 33 | function setupReturn() { 34 | document.getElementById('btncancel').addEventListener('click', function () { 35 | window.location.href = "index.html"; 36 | }); 37 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Scripts/detailpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | 3 | var id = getUrlParameters("id", "", true); 4 | 5 | StudentModule.getStudentById(id, function (student) { 6 | document.getElementById("loadingmsg").style.display = "none"; 7 | showDetails(student); 8 | }); 9 | }); 10 | 11 | function showDetails(obj) { 12 | // Load details 13 | for (var key in obj) { 14 | if (key.toLowerCase() !== "id") { 15 | var infoelement = document.getElementById(key); 16 | infoelement.innerHTML = obj[key]; 17 | } 18 | } 19 | } 20 | 21 | function getUrlParameters(parameter, staticURL, decode) { 22 | /* 23 | Function: getUrlParameters 24 | Description: Get the value of URL parameters either from 25 | current URL or static URL 26 | Author: Tirumal 27 | URL: www.code-tricks.com 28 | */ 29 | var currLocation = (staticURL.length) ? staticURL : window.location.search, 30 | parArr = currLocation.split("?")[1].split("&"), 31 | returnBool = true; 32 | 33 | for (var i = 0; i < parArr.length; i++) { 34 | parr = parArr[i].split("="); 35 | if (parr[0] == parameter) { 36 | return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 37 | returnBool = true; 38 | } else { 39 | returnBool = false; 40 | } 41 | } 42 | 43 | if (!returnBool) return false; 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Scripts/editpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | 3 | var id = getUrlParameters("id", "", true); 4 | 5 | StudentModule.getStudentById(id, function (student) { 6 | loadForm(student); 7 | }); 8 | 9 | //Setup submit button 10 | setupStudentSubmit(id); 11 | //Setup cancel buttons 12 | setupReturn(); 13 | 14 | }); 15 | 16 | function getUrlParameters(parameter, staticURL, decode) { 17 | /* 18 | Function: getUrlParameters 19 | Description: Get the value of URL parameters either from 20 | current URL or static URL 21 | Author: Tirumal 22 | URL: www.code-tricks.com 23 | */ 24 | var currLocation = (staticURL.length) ? staticURL : window.location.search, 25 | parArr = currLocation.split("?")[1].split("&"), 26 | returnBool = true; 27 | 28 | for (var i = 0; i < parArr.length; i++) { 29 | parr = parArr[i].split("="); 30 | if (parr[0] == parameter) { 31 | return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 32 | returnBool = true; 33 | } else { 34 | returnBool = false; 35 | } 36 | } 37 | 38 | if (!returnBool) return false; 39 | }; 40 | 41 | function loadForm(obj) { 42 | 43 | // Prefill form with details 44 | for (var key in obj) { 45 | if (key.toLowerCase() !== "id") { 46 | var forminput = document.getElementById(key + 'input'); 47 | forminput.value = obj[key]; 48 | } 49 | } 50 | 51 | //show form after loaded 52 | document.forms.edit.classList.remove("hidden"); 53 | }; 54 | 55 | function setupStudentSubmit(id) { 56 | 57 | //Creating student from form and update db 58 | var form = document.forms.edit; 59 | form.onsubmit = function (e) { 60 | e.preventDefault(); 61 | var newStudent = { 62 | id: id, 63 | lastname: document.getElementById("LastNameinput").value, 64 | firstmidname: document.getElementById("FirstMidNameinput").value, 65 | enrollmentdate: document.getElementById("EnrollmentDateinput").value 66 | } 67 | 68 | StudentModule.updateStudent(id, newStudent, function () { 69 | window.location.href = "index.html"; 70 | }); 71 | } 72 | }; 73 | 74 | //Go back to home without saving changes 75 | function setupReturn() { 76 | document.getElementById('btncancel').addEventListener('click', function () { 77 | window.location.href = "index.html"; 78 | }); 79 | } -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Scripts/studentmodule.js: -------------------------------------------------------------------------------- 1 | var StudentModule = (function () { 2 | 3 | return { 4 | getStudents: function (callback) { 5 | $.ajax({ 6 | type: "GET", 7 | dataType: "json", 8 | // API url here 9 | url: "http://msauniapp.azurewebsites.net/api/Students", 10 | success: function(data){ 11 | console.log(data); 12 | callback(data); 13 | } 14 | }); 15 | }, 16 | 17 | getStudentById: function (id, callback){ 18 | 19 | $.ajax({ 20 | type: "GET", 21 | dataType: "json", 22 | url: "http://msauniapp.azurewebsites.net/api/Students/" + id, 23 | success: function(data){ 24 | console.log(data); 25 | callback(data); 26 | } 27 | }); 28 | 29 | }, 30 | 31 | addStudent: function (student, callback) { 32 | 33 | $.ajax({ 34 | url : "http://msauniapp.azurewebsites.net/api/Students/", 35 | type: "POST", 36 | data : student, 37 | success: function(data, textStatus, jqXHR) 38 | { 39 | callback(); 40 | } 41 | }); 42 | 43 | }, 44 | 45 | updateStudent: function (studentid, student, callback){ 46 | 47 | $.ajax({ 48 | url : "http://msauniapp.azurewebsites.net/api/Students/" + studentid, 49 | type: "PUT", 50 | data : student, 51 | success: function(data, textStatus, jqXHR) 52 | { 53 | callback(); 54 | } 55 | }); 56 | }, 57 | 58 | deleteStudent: function (studentid, callback) { 59 | 60 | $.ajax({ 61 | type: "DELETE", 62 | dataType: "json", 63 | url: "http://msauniapp.azurewebsites.net/api/Students/" + studentid, 64 | success: function(data){ 65 | callback(); 66 | } 67 | }); 68 | } 69 | }; 70 | 71 | }()); -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Christchurch/Full App/MSAUniApp/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Christchurch/Full App/MSAUniApp/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Christchurch/Whats in server side.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Christchurch/Whats in server side.pptx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Vishesh Oberoi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Others/Front End Demo/Final Source Code/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*padding-top: 60px;*/ 3 | } 4 | /*@media (max-width: 979px) { 5 | body { 6 | padding-top: 0px; 7 | } 8 | }*/ 9 | 10 | .spaced-table>thead>tr>th{ 11 | padding:20px 20px; 12 | } 13 | 14 | .spaced-table>tbody>tr>td{ 15 | padding: 40px 20px; 16 | vertical-align:middle; /*when you add button it gets weird so need this*/ 17 | } 18 | 19 | .spaced-table>tbody>tr{ 20 | cursor:pointer; 21 | } 22 | 23 | #loadingscreen{ 24 | height:100vh; 25 | background-color:#5c2d91; 26 | /*display:none;*/ 27 | text-align:center; 28 | position:absolute; 29 | 30 | -webkit-transform-style: preserve-3d; 31 | transform-style: preserve-3d; 32 | } 33 | 34 | #loadinganim{ 35 | color:#fff; 36 | font-size:larger; 37 | margin: 0 auto; 38 | position: relative; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | } 42 | -------------------------------------------------------------------------------- /Others/Front End Demo/Final Source Code/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Students 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 23 |
24 |
25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
Last NameFirst NameCountry
38 | 39 |
40 |
41 | 42 | 43 | -------------------------------------------------------------------------------- /Others/Front End Demo/Final Source Code/scripts/StudentModule.js: -------------------------------------------------------------------------------- 1 | // We've sepearated out all the functions related to making the AJAX calls to the API 2 | // Just keeps things tidy, allows us to keep some things private 3 | var StudentModule = (function () { 4 | 5 | // Return anything that you want to expose outside the closure 6 | return { 7 | getStudents: function (callback) { 8 | 9 | $.ajax({ 10 | type: "GET", 11 | dataType: "jsonp", 12 | url: "http://api.uinames.com/?amount=25", 13 | success: function(data){ 14 | console.log(data); 15 | callback(data); 16 | } 17 | }); 18 | 19 | } 20 | }; 21 | }()); -------------------------------------------------------------------------------- /Others/Front End Demo/Final Source Code/scripts/index.js: -------------------------------------------------------------------------------- 1 | // This event triggers on page load 2 | document.addEventListener("DOMContentLoaded", function () { 3 | console.log("This works!"); 4 | loadStudents(); 5 | }); 6 | 7 | function loadStudents(){ 8 | 9 | // We need a reference to the div/table that we are going to chuck our data into 10 | var studentsTable = document.getElementById("tblstudentcontent"); 11 | 12 | StudentModule.getStudents(function (studentsList) { 13 | setupStudentsTable(studentsList); 14 | }); 15 | 16 | // This is the callback for when the data comes back in the studentmodule 17 | function setupStudentsTable(students) { 18 | console.log(students); 19 | for (i = 0; i < students.length; i++) { 20 | 21 | // Create row 22 | var row = document.createElement('tr'); 23 | 24 | // Add the columns in the row (td / data cells) 25 | var lastnamecol = document.createElement('td'); 26 | lastnamecol.innerHTML = students[i].surname; 27 | row.appendChild(lastnamecol); 28 | 29 | var firstnamecol = document.createElement('td'); 30 | firstnamecol.innerHTML = students[i].name; 31 | row.appendChild(firstnamecol); 32 | 33 | var enrollmentdatecol = document.createElement('td'); 34 | enrollmentdatecol.innerHTML = students[i].country; 35 | row.appendChild(enrollmentdatecol); 36 | 37 | // Append the row to the end of the table 38 | studentsTable.appendChild(row); 39 | 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Others/Front End Demo/Initial Source Code/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*padding-top: 60px;*/ 3 | } 4 | /*@media (max-width: 979px) { 5 | body { 6 | padding-top: 0px; 7 | } 8 | }*/ 9 | 10 | .spaced-table>thead>tr>th{ 11 | padding:20px 20px; 12 | } 13 | 14 | .spaced-table>tbody>tr>td{ 15 | padding: 40px 20px; 16 | vertical-align:middle; /*when you add button it gets weird so need this*/ 17 | } 18 | 19 | .spaced-table>tbody>tr{ 20 | cursor:pointer; 21 | } 22 | 23 | #loadingscreen{ 24 | height:100vh; 25 | background-color:#5c2d91; 26 | /*display:none;*/ 27 | text-align:center; 28 | position:absolute; 29 | 30 | -webkit-transform-style: preserve-3d; 31 | transform-style: preserve-3d; 32 | } 33 | 34 | #loadinganim{ 35 | color:#fff; 36 | font-size:larger; 37 | margin: 0 auto; 38 | position: relative; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | } 42 | -------------------------------------------------------------------------------- /Others/Front End Demo/Initial Source Code/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Students 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 21 |
22 |
23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
Last NameFirst NameCountry
35 |
36 |
37 | 38 | 39 | -------------------------------------------------------------------------------- /Others/Front End Full/Create.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Create student 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Create student

35 |
36 |
37 | 38 | 39 |
40 |
41 | 42 | 43 |
44 |
45 | 46 | 47 |
48 |
49 | 50 | 51 |
52 |
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /Others/Front End Full/Detail.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Student details 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Student details loading...

35 |

Student details

36 |

Student last name:

37 |

38 |

Student first name:

39 |

40 |

Student enrollment date:

41 |

42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Others/Front End Full/Edit.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Edit student 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 31 |
32 |
33 | Back to home 34 |

Edit student details

35 | 53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /Others/Front End Full/Index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Students 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 32 |
33 |
34 | + Create a student 35 |
36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |

Students table loading...

50 |
51 |
52 | 53 | 54 | -------------------------------------------------------------------------------- /Others/Front End Full/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*padding-top: 60px;*/ 3 | } 4 | /*@media (max-width: 979px) { 5 | body { 6 | padding-top: 0px; 7 | } 8 | }*/ 9 | 10 | .spaced-table>thead>tr>th{ 11 | padding:20px 20px; 12 | } 13 | 14 | .spaced-table>tbody>tr>td{ 15 | padding: 40px 20px; 16 | vertical-align:middle; /*when you add button it gets weird so need this*/ 17 | } 18 | 19 | .spaced-table>tbody>tr{ 20 | cursor:pointer; 21 | } 22 | 23 | #loadingscreen{ 24 | height:100vh; 25 | background-color:#5c2d91; 26 | /*display:none;*/ 27 | text-align:center; 28 | position:absolute; 29 | 30 | -webkit-transform-style: preserve-3d; 31 | transform-style: preserve-3d; 32 | } 33 | 34 | #loadinganim{ 35 | color:#fff; 36 | font-size:larger; 37 | margin: 0 auto; 38 | position: relative; 39 | top: 50%; 40 | transform: translateY(-50%); 41 | } 42 | -------------------------------------------------------------------------------- /Others/Front End Full/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/Front End Full/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Others/Front End Full/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/Front End Full/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Others/Front End Full/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/Front End Full/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Others/Front End Full/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/Front End Full/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Others/Front End Full/scripts/createpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | setupStudentSubmit(); 3 | setupReturn(); 4 | }); 5 | 6 | function setupStudentSubmit() { 7 | 8 | //Creating student from form parameters 9 | 10 | var form = document.forms.create; 11 | // Need to add our own custom event for form submission 12 | form.onsubmit = function (e) { 13 | // ... and prevent the default action from occuring 14 | e.preventDefault(); 15 | 16 | //Creating student from form parameters 17 | var newStudent = { 18 | // Access the data in the fields with .value 19 | lastname: document.getElementById("LastNameinput").value, 20 | firstmidname: document.getElementById("FirstNameinput").value, 21 | enrollmentdate: document.getElementById("EnrollmentDateinput").value 22 | } 23 | 24 | // Take me back home when done! 25 | StudentModule.addStudent(newStudent, function () { 26 | window.location.href = "index.html"; 27 | }); 28 | } 29 | 30 | }; 31 | 32 | // Add event listener, cancel button will take you back to home page 33 | function setupReturn() { 34 | document.getElementById('btncancel').addEventListener('click', function () { 35 | window.location.href = "index.html"; 36 | }); 37 | } -------------------------------------------------------------------------------- /Others/Front End Full/scripts/detailpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | var controller = getUrlParameters("type", "", true); 3 | var id = getUrlParameters("id", "", true); 4 | 5 | if (controller === "courses") { 6 | // Unused (for now) 7 | } else if (controller === "students") { 8 | StudentModule.getStudentById(id, function (student) { 9 | document.getElementById("loadingmsg").style.display = "none"; 10 | showDetails(student); 11 | }); 12 | } 13 | 14 | }); 15 | 16 | function showDetails(obj) { 17 | // Load details 18 | for (var key in obj) { 19 | if (key.toLowerCase() !== "id") { 20 | var infoelement = document.getElementById(key); 21 | infoelement.innerHTML = obj[key]; 22 | } 23 | } 24 | } 25 | 26 | function getUrlParameters(parameter, staticURL, decode) { 27 | /* 28 | Function: getUrlParameters 29 | Description: Get the value of URL parameters either from 30 | current URL or static URL 31 | Author: Tirumal 32 | URL: www.code-tricks.com 33 | */ 34 | var currLocation = (staticURL.length) ? staticURL : window.location.search, 35 | parArr = currLocation.split("?")[1].split("&"), 36 | returnBool = true; 37 | 38 | for (var i = 0; i < parArr.length; i++) { 39 | parr = parArr[i].split("="); 40 | if (parr[0] == parameter) { 41 | return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 42 | returnBool = true; 43 | } else { 44 | returnBool = false; 45 | } 46 | } 47 | 48 | if (!returnBool) return false; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /Others/Front End Full/scripts/editpages.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | var controller = getUrlParameters("type", "", true); 3 | var id = getUrlParameters("id", "", true); 4 | 5 | if (controller === "courses") { 6 | 7 | // Not using this (for now) 8 | 9 | } else if (controller === "students") { 10 | 11 | StudentModule.getStudentById(id, function (student) { 12 | loadForm(student); 13 | }); 14 | 15 | setupStudentSubmit(id); 16 | } 17 | 18 | setupReturn(); 19 | 20 | }); 21 | 22 | function getUrlParameters(parameter, staticURL, decode) { 23 | /* 24 | Function: getUrlParameters 25 | Description: Get the value of URL parameters either from 26 | current URL or static URL 27 | Author: Tirumal 28 | URL: www.code-tricks.com 29 | */ 30 | var currLocation = (staticURL.length) ? staticURL : window.location.search, 31 | parArr = currLocation.split("?")[1].split("&"), 32 | returnBool = true; 33 | 34 | for (var i = 0; i < parArr.length; i++) { 35 | parr = parArr[i].split("="); 36 | if (parr[0] == parameter) { 37 | return (decode) ? decodeURIComponent(parr[1]) : parr[1]; 38 | returnBool = true; 39 | } else { 40 | returnBool = false; 41 | } 42 | } 43 | 44 | if (!returnBool) return false; 45 | }; 46 | 47 | function loadForm(obj) { 48 | 49 | // Prefill form with details 50 | for (var key in obj) { 51 | if (key.toLowerCase() !== "id") { 52 | var forminput = document.getElementById(key + 'input'); 53 | forminput.value = obj[key]; 54 | } 55 | } 56 | 57 | //show form after loaded 58 | document.forms.edit.classList.remove("hidden"); 59 | }; 60 | 61 | function setupStudentSubmit(id) { 62 | 63 | //Creating student from form and update db 64 | var form = document.forms.edit; 65 | form.onsubmit = function (e) { 66 | e.preventDefault(); 67 | var newStudent = { 68 | id: id, 69 | lastname: document.getElementById("LastNameinput").value, 70 | firstmidname: document.getElementById("FirstMidNameinput").value, 71 | enrollmentdate: document.getElementById("EnrollmentDateinput").value 72 | } 73 | 74 | StudentModule.updateStudent(id, newStudent, function () { 75 | window.location.href = "index.html"; 76 | }); 77 | } 78 | }; 79 | 80 | //Go back to home without saving changes 81 | function setupReturn() { 82 | document.getElementById('btncancel').addEventListener('click', function () { 83 | window.location.href = "index.html"; 84 | }); 85 | } -------------------------------------------------------------------------------- /Others/JaySimpleSite/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /Others/JaySimpleSite/Web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Others/JaySimpleSite/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Jays simple demo site 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
Last NameFirst NameEnrol Date
27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Others/JaySimpleSite/js/internet.js: -------------------------------------------------------------------------------- 1 | var Internet = (function () { 2 | return { 3 | getStudents: function (callback) { 4 | var xhttp = new XMLHttpRequest(); 5 | 6 | //This gets triggered when the state of the xhttp object changes 7 | xhttp.onreadystatechange = function () { 8 | // 4 - repsonse is ready, 200 success code 9 | if (xhttp.readyState == 4 && xhttp.status == 200) { 10 | loadedStudents(); 11 | } 12 | } 13 | 14 | // Build up our request and send it - true for async 15 | xhttp.open("GET", "http://msauniversity.azurewebsites.net/api/Students", true); 16 | xhttp.setRequestHeader("Content-type", "application/json"); 17 | xhttp.send(null); 18 | 19 | // Parse and send the studentlist data back to index.js 20 | function loadedStudents() { 21 | var studentsList = JSON.parse(xhttp.responseText); 22 | callback(studentsList); 23 | return studentsList; 24 | } 25 | } 26 | } 27 | } 28 | 29 | () 30 | 31 | ); -------------------------------------------------------------------------------- /Others/JaySimpleSite/js/loader.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function() 2 | { 3 | var controller = document.body.getAttribute("data-controller"); 4 | if(controller === "students") 5 | { 6 | // this stuff is working 7 | loadStudentTable(controller); 8 | } 9 | }); 10 | 11 | // This starts loading the table 12 | function loadStudentTable(controller) 13 | { 14 | Internet.getStudents(function (studentsList) 15 | { 16 | setupStudentTable(studentsList); 17 | }); 18 | } 19 | 20 | // parameter students is a list 21 | function setupStudentTable(students) 22 | { 23 | var studentTable = document.getElementById("studentTable"); 24 | 25 | for(i=0; i < students.length; i++) 26 | { 27 | var row = document.createElement("tr"); 28 | 29 | var col_lastname = document.createElement("td"); 30 | var col_firstname = document.createElement("td"); 31 | var col_enrol = document.createElement("td"); 32 | 33 | col_lastname.innerHTML = students[i].LastName; 34 | col_firstname.innerHTML = students[i].FirstMidName; 35 | col_enrol.innerHTML = students[i].EnrollmentDate; 36 | 37 | row.appendChild(col_lastname); 38 | row.appendChild(col_firstname); 39 | row.appendChild(col_enrol); 40 | 41 | 42 | studentTable.appendChild(row); 43 | 44 | } 45 | } -------------------------------------------------------------------------------- /Others/JaySimpleSite/readme.md: -------------------------------------------------------------------------------- 1 | This is a simplified version of the Full/Complete code. 2 | 3 | This site only contains 3 main parts: 4 | 5 | index.html - basic HTMl interface with tables and IDs setup 6 | loader.js - The javascript file that generates the table 7 | internet.js - The javascript file that communicates with the internet (back end API) 8 | -------------------------------------------------------------------------------- /Others/_images/API I/1-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/1-1.PNG -------------------------------------------------------------------------------- /Others/_images/API I/1-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/1-2.PNG -------------------------------------------------------------------------------- /Others/_images/API I/1-3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/1-3.PNG -------------------------------------------------------------------------------- /Others/_images/API I/2-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/2-1.PNG -------------------------------------------------------------------------------- /Others/_images/API I/3-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/3-1.PNG -------------------------------------------------------------------------------- /Others/_images/API I/3-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/3-2.PNG -------------------------------------------------------------------------------- /Others/_images/API I/5-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/5-1.PNG -------------------------------------------------------------------------------- /Others/_images/API I/5-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/5-2.PNG -------------------------------------------------------------------------------- /Others/_images/API I/5-3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API I/5-3.PNG -------------------------------------------------------------------------------- /Others/_images/API II/2-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API II/2-1.PNG -------------------------------------------------------------------------------- /Others/_images/API II/2-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API II/2-2.PNG -------------------------------------------------------------------------------- /Others/_images/API II/2-3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/API II/2-3.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 1.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 2.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 3.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 4.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 5.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 6.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 7.PNG -------------------------------------------------------------------------------- /Others/_images/Authentication/Step 8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Authentication/Step 8.PNG -------------------------------------------------------------------------------- /Others/_images/Pre day 2/1-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Pre day 2/1-1.PNG -------------------------------------------------------------------------------- /Others/_images/Pre day 2/2-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Pre day 2/2-1.PNG -------------------------------------------------------------------------------- /Others/_images/Pre day 2/2-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Pre day 2/2-2.PNG -------------------------------------------------------------------------------- /Others/_images/Pre day 2/2-3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Pre day 2/2-3.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/3.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-1.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-2a.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-2a.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-2b.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-2b.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-3a.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-3a.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-3b.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-3b.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-4.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-5.PNG -------------------------------------------------------------------------------- /Others/_images/Web II/4-6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/Web II/4-6.PNG -------------------------------------------------------------------------------- /Others/_images/git/2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/2a.png -------------------------------------------------------------------------------- /Others/_images/git/2b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/2b.png -------------------------------------------------------------------------------- /Others/_images/git/3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/3a.png -------------------------------------------------------------------------------- /Others/_images/git/3b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/3b.png -------------------------------------------------------------------------------- /Others/_images/git/5a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/5a.png -------------------------------------------------------------------------------- /Others/_images/git/5b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/git/5b.png -------------------------------------------------------------------------------- /Others/_images/jQuery Plugins/1-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/jQuery Plugins/1-1.PNG -------------------------------------------------------------------------------- /Others/_images/jQuery Plugins/1-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/jQuery Plugins/1-2.PNG -------------------------------------------------------------------------------- /Others/_images/jQuery Plugins/2-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/jQuery Plugins/2-1.PNG -------------------------------------------------------------------------------- /Others/_images/jQuery Plugins/3-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ovishesh/MSA-2015-16/965d6945818f8f963e5fa9161c3628676a8aa4bb/Others/_images/jQuery Plugins/3-1.PNG -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MSA-2015-16 2 | 3 | Please refer to the [Assessment and FAQ](/Assessment and FAQ/) section for any questions. --------------------------------------------------------------------------------