Rapid Web Development

Unit 3,
Week 4
Client/Server, REST, Project Cycle

Quick homework review

Scrum time!

Everything a Web Developer Should Know

Big ol' checklist. Which of these can you mark off?


The internet

Everything you do online is some form of client-server interaction. 

Your browser is the client. Zombo.com, the server sending files to your client.

Everything you view through a web browser eventually exists on your client, at least briefly.

The internet is a series of tubes.

The path of an http request

As the client requesting files from a server, you currently have an IP address. (http://www.whatismyip.com/)

The server you're requesting has an IP address. (http://cqcounter.com/whois/)

How to get from your current location on the internet to the location of the server?

Domain Name System (dns)

Your internet service provider (Comcast, et al) forwards your request to a series of domain name servers.

These are the phone books of the internet, translating human names (zombo.com) into internet addresses (69.16.230.117)

The returned address allows your client request to find it's requested server out in the tubes.

DNS Lookup


Domain names


Ever change a domain name registrar or "name server"?

The phantom site: changing domain names but site is still available at old url.

Propagation across hundreds of domain name servers takes time.

Very simple HTTP

Hypertext Transfer Protocol, the rules that govern how we communicate on networks.

http://en.wikipedia.org/wiki/Http

Request methods.

even very simpler httP requests

There is a lot of "chatter" in HTTP. It is "noisy", requesting a lot of confirmation to ensure that all data is perfectly transferred. This is why streaming audio/video tends to use other "lossy" formats.

http://vimeo.com/14439742

REST

(Representational State Transfer)

Goes hand-in-hand with HTTP. The methods and concepts of REST allow us to build applications that act as "mini internets".

Homework 3a:

Quiz Next Week

Hosts

You have your very own name server, right on your computer right now.

Your hosts file gets the first chance to totally mess with the IP addresses URLs map to.

Let's try it. Edit:
*nix: /etc/hosts
Windows: C:\Windows\system32\drivers\etc\hosts, (Folder Options, "show hidden files and folder". Ugh.)

post your public keys in g+ group


We'll play with SSH in the next class, but I want to make sure we're all secure. Post on G+ as comment.

~/.ssh/id_rsa.pub

Project cycle

  1. Gather
  2. Plan
  3. Sketch
  4. Design
  5. Build
  6. Test
  7. Train

1. Gather

The Gather phase is a process of discovery. A project overview call(s) with the client and any partners. Arrange to have question and answer sessions to clarify any details. This is also the first opportunity to ask about aesthetics and inquire about branding, feature requests and examples of design that are both revered and unliked. Finally, arrange for the set up of any necessary credentials (servers, keys, logins).

2. Plan

Work with the client to clearly define the scope of the project. This involves brainstorming, creating preliminary and final site requirements, a list of deliverables, staff assignments, and a development schedule. 

3. Sketch

In this phase, create wireframes and sketches  using tools like OmniGraffle and Axure. No code is written yet. Create clear and concrete concepts to be exchanged with all stakeholders. Possibly write user stories and draw feature maps. Once the wireframes are done, review for usability.

4. Design

Only now that your team has a clear plan and wireframes do we start design. This is an iterative process involving the creation of initial comps, a style guide (if applicable), and the final design guidelines. The guidelines are composed of site maps, page type comps, and redlines.

5. build

With solid design, documented architecture, and designated supporting technologies in place,  you can start coding.  Assign team members to individual tasks. Begin the base system development. Once the base is in place and configured, you can build out features, the theme, and CMS/framework elements.

6. Test

The audits involved measure success with the following elements: Feature Completeness, Design / UX and Branding, Functionality, Performance, and Platform / Browser User Experience.

7. Train

Help your clients transition to their new online home. Training is often a long-term engagement that can take up a significant portion of the project resources.

Homework 3b

See the class repo (wdim351-curriculum) to get the work request from the client. You are in the Gather phase.
 
Have your team generate 15 questions that you need to ask to move this into the Sketch and Planning stages. Push these up into a class_03/README.me file in your team repo. Use markdown syntax to format them correctly.

Submit a link to your repo as a comment in the appropriate, existing G+ post.

Homework 3c

Homework 3c: Get apache going on your local computers in preparation for Week 4. MAMP/XAMPP/Vagrant

We won't waste time installing it here.

wdim351_week03

By Christopher Bloom

wdim351_week03

  • 2,951