Learning Front-End Web Development
1. Setting Up Your Development Environment
Installing and Configuring Atom
Documentation and Reference Sources
Crash Course in the Command Line
Finding out what directory you are in
Getting administrator privileges
Installing Node.js and browser-sync
For the More Curious: Alternatives to Atom
2. Setting Up Your First Project
Viewing the Web Page in the Browser
For the More Curious: CSS Versions
For the More Curious: The favicon.ico
Silver Challenge: Adding a favicon.ico
Preparing the HTML for Styling
Adjusting the Space Between Items
Bronze Challenge: Color Change
For the More Curious: Specificity! When Selectors Collide…
4. Responsive Layouts with Flexbox
Horizontal layout for thumbnails
Grouping elements within a flex item
Ordering, justifying, and aligning flex items
Absolute and Relative Positioning
5. Adaptive Layouts with Media Queries
For the More Curious: Common Solutions (and Bugs) with Flexbox Layouts
Gold Challenge: Holy Grail Layout
6. Handling Events with JavaScript
Preparing the Anchor Tags for Duty
Overview of the JavaScript for Ottergram
Writing the setDetails Function
Accepting arguments by declaring parameters
Returning Values from Functions
Iterating Through the Array of Thumbnails
For the More Curious: Strict Mode
For the More Curious: Closures
For the More Curious: NodeLists and HTMLCollections
For the More Curious: JavaScript Types
Hiding and Showing the Detail Image
Creating styles to hide the detail image
Writing the JavaScript to hide the detail image
Listening for the keypress event
Showing the detail image again
State Changes with CSS Transitions
Working with the transform property
Triggering transitions with JavaScript
For the More Curious: Rules for Type Coercion
II. Modules, Objects, and Forms
8. Modules, Objects, and Methods
Modifying an object with an IIFE
Adding methods to the constructor
Locating bugs with the DevTools
Setting the value of this with bind
Initializing CoffeeRun on Page Load
Bronze Challenge: Truck ID for Non-Trekkies
For the More Curious: Private Module Data
Silver Challenge: Making data Private
For the More Curious: Setting this in forEach’s Callback
Offering choices with radio buttons
Adding Submit and Reset buttons
10. Processing Forms with JavaScript
Creating the FormHandler Module
Configuring instances of FormHandler with a selector
Accepting and calling a callback
Registering createOrder as a submit handler
Bronze Challenge: Supersize It
Silver Challenge: Showing the Value as the Slider Changes
Gold Challenge: Adding Achievements
Creating DOM elements with jQuery
Creating CheckList Rows on Submit
Delivering an Order by Clicking a Row
Creating the CheckList.prototype.removeRow method
Writing the addClickHandler method
Bronze Challenge: Adding the Strength to the Description
Silver Challenge: Color Coding by Flavor Shot
Gold Challenge: Allowing Order Editing
Validating with Regular Expressions
Associating the validation check with the input event
Styling Valid and Invalid Elements
Silver Challenge: Custom Validation for Decaf
For the More Curious: The Webshims Library
Inspecting the Ajax request and response
Retrieving Data from the Server
Replacing DataStore with RemoteDataStore
Silver Challenge: Validating Against the Remote Server
Registering Callbacks with then
Using Deferreds with Callback-Only APIs
Creating and returning Promises
Promise-ifying the other DataStore methods
Silver Challenge: Fallback to DataStore
Reading a file with the fs module
For the More Curious: npm Module Registry
Bronze Challenge: Creating a Custom Error Page
For the More Curious: MIME Types
Silver Challenge: Providing a MIME Type Dynamically
Gold Challenge: Moving Error Handling to Its Own Module
16. Real-Time Communication with WebSockets
Testing Your WebSockets Server
Creating the Chat Server Functionality
For the More Curious: socket.io WebSockets Library
For the More Curious: WebSockets as a Service
Bronze Challenge: Am I Repeating Myself?
Tools for Compiling JavaScript
The Chattrbox Client Application
Using Browserify for Packaging Modules
Handling events and sending messages
For the More Curious: Compiling to JavaScript from Other Languages
Bronze Challenge: Default Import Name
Silver Challenge: Closed Connection Alert
For the More Curious: Hoisting
For the More Curious: Arrow Functions
18. ES6, the Adventure Continues
Installing jQuery as a Node Module
Connecting ChatForm to the socket
Formatting and Updating Message Timestamps
Bronze Challenge: Adding Visual Effects to Messages
Silver Challenge: Caching Messages
Gold Challenge: Separate Chat Rooms
19. Introduction to MVC and Ember
For the More Curious: npm and Bower Install
Bronze Challenge: Limiting Imports
Silver Challenge: Adding Font Awesome
Gold Challenge: Customizing the NavBar
20. Routing, Routes, and Models
For the More Curious: setupController and afterModel
For the More Curious: Retrieving Data
For the More Curious: Saving and Destroying Data
Bronze Challenge: Changing the Computed Property
Silver Challenge: Flagging New Sightings
22. Data – Adapters, Serializers, and Transforms
For the More Curious: Ember CLI Mirage
Silver Challenge: Content Security
Bronze Challenge: Adding Link Rollovers
Silver Challenge: Changing the Date Format
Gold Challenge: Creating a Custom Thumbnail Helper
Bronze Challenge: Sighting Detail Page
Silver Challenge: Sighting Date
Gold Challenge: Adding and Removing Witnesses
Bronze Challenge: Customizing the Alert Message
Silver Challenge: Making the NavBar a Component
3.145.55.198