- Basic command line
- Git + Github
- Some HTML & CSS
- Webinspector
- Programming concepts
- Varables & literals
- Objects & methods
- Lists & data structures
- Requiring modules
- Mapping URLs to Actions
- Express app
- Basic client-side javascript w/ jquery
- Debugging client and server-side
- Reading stack traces
- Forms
- Heroku
- Storing data with postgres & pg
- Database tables & migrations
- Installfest
- homebrew (fixes /usr/local)
- node
- xcode
- atom & sublime
- postgres app
- github app
- heroku toolbelt
- How does the internet basically work?
- JavaScript
- Values, Types, and Operators
- Program Structure & Control
- Functions
- Objects and Arrays
- The browser
- Webinspector
- Code Pen
- Debugging
- In slack, post 3 apps you think are cool. Read you classmates' and @mention someone's you agree with.
- Read What happens when you type google.com into your browser and press enter?. Post one thing you didn't expect & one thing you did.
- Write a FizzBuzz implementation. Try not to look at existing implementations. Post yours to slack as a snippet. Comment one someone else's.
- Objects/Hashes in Javascript
- jQuery based DOM manipulation
- Handling forms client side
- CSS selectors
- Bootstrap
- Make the table get populated with a row with the email and password from what you enter into the form
- Add a remove link to each row that when you click on it, removes the row [Hint: you’ll probably run into an issue trying to attach a handler to an element generated at runtime. Read the docs for
.on()
. Pay particularily close attention to the last 2 examples. http://api.jquery.com/on/] - Store the email/password for users records in Web Storage (
localstorage
). That way the data will persist when you reload the page. Checkout http://diveintohtml5.info/storage.html, http://blog.teamtreehouse.com/html5-local-storage, https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API - If you're really crushing it, read & follow along with the React Tutorial. React makes building HTML from Javascript really easy. When you get to the section called "Fetching from the Server” you can stop; you’ll need a slightly more sophisticated setup to get that to work correctly.
- jQuery's factory method: Building DOM nodes vs selecting DOM nodes
- Eventing,
.on()
, & prevent default - Storing objects in arrays
- Serializing data with
JSON.stringify
andJSON.parse
localStorage
for persistence
- Build a simple todo list application w/ jQuery. It should:
- Store TODO items in an array & persist that array with localStorage
- Allow you to add TODO items
- Keep two pieces of state info for each todo item:
name
andisDone
- handle done/not done & delete:
- if an item is not done, when you click on it, make it done
- if an item is done, when you click on it, make it not done
- if an item is done, when you double click on it, delete it
- Sign-up for these newsletters: Status Code, Node Weekly, JavaScript Weekly, HTML5 Weekly and browse and read the latest one for articles that interest you. Post your fav (of all of them) into slack.
- Do at least half of Learn the CLI the Hard Way
- Git using the Github app
- http-server vs file://
- React as a "better jQuery"
- Stores and models
- React
render
- React
props
- React event handling
- React to re-create the TODO list. One implementation
- jsx
- Read the react tutorial. Where they talk about "getting data from the server", instead just get data to and from
localStorage
- Read thinking in react
- Checkout the kinds of docs on the sidebar of the react site. This is the best place to learn about React.
- Build the osx notes app with react:
- Store notes as objects in an array and persist with localStorage
- Add/Edit/Delete Notes
- Parse & display markdown
Homework:
- Finish the OSX notes app
Homework:
- Finish the in-class lab
- Make an awesome music player like Spotify
- Go to soundcloud or a similar service and download a couple of music files, put them in your project folder
- Show a list of the music files (you'll need to "hard code" the data;
{title: , audioUrl: }
) - Create an HTML5
<audio/>
element as a player - When you click on one of the tracks in your list, play that file in the audio tag
- Allow people to add/remove files to the list; store to
localStorage
- Running Node programs
require()
module.exports
- npm (cool-ascii-faces)
- HTTP Methods:
GET
vsPOST
- Query-string
Homework (Goal: understand express routes):
- Read Routing in Express 4.0
- use the first code snippet as a basis for your app
- initialize a new git repo
git init
; add a node-style gitignore from https://www.gitignore.io/api/node; make your initial commit - make /tweets return the words "these are your tweeets"
- make /user return the words "this is your user account"
- make a route /login that uses the query string to dispay a message dynamically.
/login?user=kyle
should return "logged in as kyle"
- Routing in Express 4.0
- Debugging Node
- HTTP
- Methods
- Querystring
- Cookies
- Session
- EJS
- Listen to NodeUp episode #87
- Complete the nodeschool workshoppers: javascripting, git-it, learnyounode, how-to-npm.
- Testing react
- es6 generators
- Coffee to es6
- In slack, write to two ideas for your "make your own app"
- Create a slack post to answer the "How do you judge a Javascript programmer by only 5 questions?"
- Models & Resources
- Associations
- React.js
- Client-side Todo App w/ just javascript (and maybe jquery)
- Client-side w/ React
- Saving state back w/ models; Sails
- (Slack)
- Auth, Session
- Associations
- Walk me through the resources that make up <insert top 100 website here>
- Which of your app ideas works best w/ the modeling concepts introduced? What models will go into your app?
- Modeling Data
- Uploads
- Sending Emails
- Background Jobs
- Live updates
- Auth + Jots
- Uploading + Photos
- Followers + Email
- Location + Background jobs
- Socket.io & live updates
- Client-side routing
- How would you research and develop a new "advanced feature" (e.g. SMS integration; charging credit cards; etc.)
- What "advanced features" will go into your own app app?
- How to make a product to compete in a start-up weekend