❮ Index
❯
TOC: Web Application development
- About
- Backend
- HTML and CSS
- Emulate devices
- Browserstack screenshots
- Mobile or Responsive?
- HTML elements
- HTML form elements
- Bare HTML
- HTML and CSS
- Viewport and Media Query for body
- Viewport and Media Query
- Pixels (px), em, rem
- Units: px (pixels)
- Units: em (The size of Letter M)
- Units: rem (root em)
- Viewport width and height
- Exercise: Responsive HTML
- CSS
- AngularJS
- What is AngularJS
- MVC Model-View-Controller and Angular (MVW or MV*)
- Learning curve
- Major Parts of AngularJS
- Getting Started AngularJS
- Simple AngularJS expression
- Variables in AngularJS expressions
- Separate variable assignment and usage into two expressions
- Separate variable assignment and usage into two expressions - fixed
- Minimal Hello User: Binding with ng-model
- Full Hello User
- AngularJS controller with output
- AngularJS - Dependency Injection
- Angular controller with binding
- Add numbers using AngularJS
- Add numbers in controller
- Add numbers using function call
- Add numbers using HTML5
- Add numbers ng-init
- Exercise: In memory counter
- Solution: In memory counter
- Solution: In memory counter with decrement
- Solution: In memory counter with controller
- Exercise: Calculator
- Solution: Calculator
- AngularJS - Services
- Services
- Console log
- Logging with $log
- Turn off logging with $logProvider
- Showing the correct line number
- Dependency Injection
- Automatic counter with $timeout
- Automatic counter with stop button
- Automatic counter with stop and start buttons
- Simple pages
- Simple pages with controller
- HTML form elements with AngularJS
- Input validation with $messages
- TODO with AngularJS
- TODO with AngularJS (ENTER to submit and delete item)
- TODO with AngularJS (localStorage)
- Exercise: Automatic Counter with $interval
- Exercise: TODO
- Solution: Automatic Counter with $interval
- AngularJS - Routing
- Bootstrap
- Start with Bootstrap
- HTML5 Skeleton
- Bootstrap Skeleton
- Bootstrap HTML Tags
- Bootstrap Grid
- Fluid Container, rows and columns
- Buttons
- Glyphicons
- Menu or navigation bar
- Bootstrap tables
- Bootstrap form elements
- Lead Paragraph
- Bootstrap Grid is Responsive
- Bootstrap Grid can be hidden
- Bootstrap Grid hide the side when small
- Exercises: Bootstrap
- AngularJS - Design
- AngularJS - Ajax - Building a Single Page Application
- What are Single-page web applications?
- Access data on server
- Mojolicious Backend
- $http GET request
- $http GET request with CORS enabled
- $http GET request with data
- $http POST, OPTIONS requests
- $http list items
- $http DELETE request
- Using ngResource
- ngResource error handling (no CORS)
- ngResource GET with param
- Public APIs with Cross-origin Resource Sharing (CORS) enabled
- MetaCPAN API
- Exercise: Implement a new interface for MetaCPAN
- AngularJS - Filters
- AngularJS - Directives
- Weather App
- TODO
- Building a Single-page application
- Source Code
- Technology
- Setting up Vagrant
- Install Perl and Dancer2
- Install Node.JS
- Dancer single file
- Create Dancer Skeleton
- Dancer Directory layout
- Dancer script and module
- Run Dancer
- Clean-up Dancer Skeleton
- Run tests
- Makefile.PL
- Dancer Test scripts
- Dancer Config file
- HTML forms
- Log form parameters
- Accessing parameters in Dancer
- Logging in Dancer
- Passing values to the template
- Template::Toolkit
- Exercise: Create reverse echo page
- Exercise: Implement a TODO list
- First Ajax example
- Add route returning JSON
- Test route returning JSON
- Page with AJAX request
- Route serving template with AJAX request
- Next step: Stand alone client
- Stand-alone AJAX client
- HTTP Access Control (CORS)
- Testing the v1 and v2 API calls
- Proxy
- Next step: Create reverse echo
- Reverse echo with AJAX and Dancer
- Test reverse echo in Dancer
- Client side of AJAX string reverse
- Refactoring Dancer app - use the before hook
- Silencing the noisy tests
- Next step: TODO list
- Add item to MongoDB (POST route)
- Test adding item to MongoDB (POST route)
- MongoDB client
- Use separate database for testing
- Fetch all the items
- Test: Fetch all the items
- Add more tests
- Add and retrieve elements using jQuery and AJAX
- Add item
- Setting up Travis-CI
- Code refactoring: _mongodb
- Deleting item: Dancer, MongoDB backend
- Test Deleting item backend
- Deleting item: client side
- Access-Control-Allow-Methods
- Add header: Access-Control-Allow-Methods
- Replace manual HTML generation by the use of Handlebars
- Handlebars code
- Add timestamp to item (back-end)
- Add timestamp to item (back-end TO_JSON)
- Monkey patching DateTime::Tiny
- Add timestamp to item (front-end)
- jQuery Tablesorter
- Add Tablesorter themes
- Add Tablesorter Date column
- Handlebars
- Getting started with Handlebars
- Handlebars Template
- Handlebars process
- Handlebars inject into DOM
- Greeting in JavaScript - html
- Greeting in JavaScript - js
- Greeting with Habdlebars - html
- Greeting with Habdlebars - js
- Greeting with Habdlebars and jQuery - html
- Greeting with Habdlebars and jQuery - js
- Handlebars data
- Handlebars process
- Handlebars object and array
- Handlebars each
- Handlebars if
- Handlebars parent context
- Handlebars static helpers - html
- Handlebars static helpers - js
- Handlebars link helper - html
- Handlebars link helper
- Handlebars if_eq - html
- Handlebars if_eq
- Handlebars conditionals - html
- Handlebars conditionals
- Handlebars helpers
- Page with back and forward buttons (html)
- Page with back and forward buttons (js)