YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: DjangoCon 2013 - Rapid prototyping and communicating with clients

RAPID PROTOTYPING AND COMMUNICATING WITH CLIENTS KAT CHUANG, PH.D. TWITTER @KATYCHUANG GITHUB @KATYCHUANG EMAIL [email protected]

Talk given at DjangoCon2013 – 9/4/2013

1

Page 2: DjangoCon 2013 - Rapid prototyping and communicating with clients

ABOUT ME

Talk given at DjangoCon2013 – 9/4/2013 2

Once upon a time…

Page 3: DjangoCon 2013 - Rapid prototyping and communicating with clients

http://pyladies.com

Talk given at DjangoCon2013 – 9/4/2013 3

NYC PYLADIES

Page 4: DjangoCon 2013 - Rapid prototyping and communicating with clients

http://pydata.org

Talk given at DjangoCon2013 – 9/4/2013 4

PYDATA

Page 5: DjangoCon 2013 - Rapid prototyping and communicating with clients

OUTLINE 1.  Communication problems

2.  Interaction Design

3.  Django Templates

4.  Abstracting the problem

5.  Demo

6.  Recap

Talk given at DjangoCon2013 – 9/4/2013 5

Page 6: DjangoCon 2013 - Rapid prototyping and communicating with clients

Talk given at DjangoCon2013 – 9/4/2013 6

10 KINDS OF PEOPLE

Page 7: DjangoCon 2013 - Rapid prototyping and communicating with clients

COMMUNICATION PROBLEMS Designs are difficult to describe

•  “I want big, colorful fonts.” •  Single color or multi colors?

• 32pt or 40pt?

• Sans serif or Serif?

•  “When you click here, this should appear.”

The client may want to see something in production before making a final decision.

Talk given at DjangoCon2013 – 9/4/2013 7

Page 8: DjangoCon 2013 - Rapid prototyping and communicating with clients

A DESIGN AID

Talk given at DjangoCon2013 – 9/4/2013 8

Page 9: DjangoCon 2013 - Rapid prototyping and communicating with clients

IMPLEMENTATION

Talk given at DjangoCon2013 – 9/4/2013 9

Page 10: DjangoCon 2013 - Rapid prototyping and communicating with clients

INTERACTION DESIGN 1.  Wireframing (blueprints)

2.  Design pattern libraries

3.  Screen sizes and responsive design

Talk given at DjangoCon2013 – 9/4/2013 10

Page 11: DjangoCon 2013 - Rapid prototyping and communicating with clients

WIREFRAMES = BLUEPRINTS

Talk given at DjangoCon2013 – 9/4/2013 11

Page 12: DjangoCon 2013 - Rapid prototyping and communicating with clients

EXPLAINING FUNCTIONS

Talk given at DjangoCon2013 – 9/4/2013 12

Page 13: DjangoCon 2013 - Rapid prototyping and communicating with clients

ADVANTAGE: STRUCTURED CONVERSATION

Talk given at DjangoCon2013 – 9/4/2013 13

Page 14: DjangoCon 2013 - Rapid prototyping and communicating with clients

Patterns are optimal solutions to common problems.

Libraries:

http://ui-patterns.com/patterns

http://developer.yahoo.com/ypatterns/

http://www.welie.com/patterns/

Talk given at DjangoCon2013 – 9/4/2013 14

DESIGN PATTERNS

Page 15: DjangoCon 2013 - Rapid prototyping and communicating with clients

RESPONSIVE DESIGN •  “The practice of using fluid grids, flexible images, and media queries to progressively enhance a web page for different viewing contexts.” - http://mediaqueri.es/about/

Talk given at DjangoCon2013 – 9/4/2013 15

Page 16: DjangoCon 2013 - Rapid prototyping and communicating with clients

Smartphone 320px Tablet 768px Netbook 1024px Desktop 1600px

Talk given at DjangoCon2013 – 9/4/2013 16

SCREEN SIZES

Page 17: DjangoCon 2013 - Rapid prototyping and communicating with clients

Talk given at DjangoCon2013 – 9/4/2013 17

DATA INPUT

Page 18: DjangoCon 2013 - Rapid prototyping and communicating with clients

DJANGO TEMPLATES Common template elements

Tips on structuring templates

DRY Principle: “Don’t repeat yourself”

Talk given at DjangoCon2013 – 9/4/2013 18

Page 19: DjangoCon 2013 - Rapid prototyping and communicating with clients

SPATIAL REPRESENTATION

Talk given at DjangoCon2013 – 9/4/2013 19

Page 20: DjangoCon 2013 - Rapid prototyping and communicating with clients

CONSISTENCY à USE INCLUDE CODE

<div  class=”logo">  <a  href="/”><img  src="{{STATIC_URL}}/pydatalogo.png”  ></a></div>  {%  if  user.is_authenticated  %}  

<a  class="btn"  href="/logout”>Log  Out</a>        You  are  logged  in  as  <em><a  href="/profile">{{  user.username  }}</a></em>  

{%  else  %}  <a  class="btn"  href="/login”>Log  In</a>  New  to  PyData?  <a  href="/register">Register</a>  

{%  endif  %}  

<div  class="menu">  

       {%  include  navmenu  %}  

</div>  

EVERY PAGE

Talk given at DjangoCon2013 – 9/4/2013 20

{%  include  header  %}  

Page 21: DjangoCon 2013 - Rapid prototyping and communicating with clients

TILING à USE LOOPS CODE

{%  for  i  in  news  %}  <div  class="news_item”>          <a  href="/{{  i.conf  }}/{{  i.id  }}">  

       [{{  i.conf  }}]  {{  i.title  }}          </a>  <div  class="pub_date”>          {{  i.date|date:'M  d,  Y'  }}  </div>  

{{  i.content|striptags|truncatechars:180  }}  </div>  {%  endfor  %}  

 

LIST OF ARTICLES

Talk given at DjangoCon2013 – 9/4/2013 21

Page 22: DjangoCon 2013 - Rapid prototyping and communicating with clients

ABSTRACT VIEW Data Flow Diagrams (DFD)

Server-Client Architecture

The User Interface (UI)

Organizing templates

Talk given at DjangoCon2013 – 9/4/2013 22

Page 23: DjangoCon 2013 - Rapid prototyping and communicating with clients

DATA FLOW DIAGRAM

Talk given at DjangoCon2013 – 9/4/2013 23

Page 24: DjangoCon 2013 - Rapid prototyping and communicating with clients

SERVER-CLIENT ARCHITECTURE

Talk given at DjangoCon2013 – 9/4/2013 24

<Web framework goes here: python>

<User Interface: html/css/javascript>

<Database Queries>

Page 25: DjangoCon 2013 - Rapid prototyping and communicating with clients

PATHS

Talk given at DjangoCon2013 – 9/4/2013 25

Page 26: DjangoCon 2013 - Rapid prototyping and communicating with clients

ORGANIZING

Project (settings and urls)

Apps (individual apps)

Models / Admin / Urls / Utils

Templates Structure Pages

Includes snippets

Static JS, CSS, Image files

Talk given at DjangoCon2013 – 9/4/2013 26

Page 27: DjangoCon 2013 - Rapid prototyping and communicating with clients

TEMPLATE SYSTEM IS A NESTED HIERARCHY (DOM)

Page

Head Stylesheets

Fonts Header

Container Banners

News Section

News Item

News Item

… Footer

Javascripts Analytics

Talk given at DjangoCon2013 – 9/4/2013 27

Page 28: DjangoCon 2013 - Rapid prototyping and communicating with clients

DOCUMENT OBJECT MODEL

Talk given at DjangoCon2013 – 9/4/2013 28

This is what the computer understands.

Page 29: DjangoCon 2013 - Rapid prototyping and communicating with clients

PICTURE DICTIONARY

Talk given at DjangoCon2013 – 9/4/2013 29

No database; 1 html file with if/else logic

Page 30: DjangoCon 2013 - Rapid prototyping and communicating with clients

D3 MAP

Talk given at DjangoCon2013 – 9/4/2013 30

No database; 1 html file with if/else logic

Page 31: DjangoCon 2013 - Rapid prototyping and communicating with clients

MULTI PAGES

Talk given at DjangoCon2013 – 9/4/2013 31

Multiple pages (url based):

Home page | Multiple columns | Large Map

Page 32: DjangoCon 2013 - Rapid prototyping and communicating with clients

•  PyData.org Community Site

•  Convert image file to templates

About PyData:

PyData is a community for developers and users of Python data tools. You can join at pydata.org

Talk given at DjangoCon2013 – 9/4/2013

32

EXAMPLE

Page 33: DjangoCon 2013 - Rapid prototyping and communicating with clients

Talk given at DjangoCon2013 – 9/4/2013 33

PYDATA

Page 34: DjangoCon 2013 - Rapid prototyping and communicating with clients

PREVIEW, PREVIEW, PREVIEW Run a local version:

$  python  manage.py  runserver  

View the site at:

http://localhost:8000  

Talk given at DjangoCon2013 – 9/4/2013 34

Page 35: DjangoCon 2013 - Rapid prototyping and communicating with clients

RECAP Idea != Execution

Blue print your ideas

Design pattern libraries

Spatial representations of code

Don’t repeat yourself

Talk given at DjangoCon2013 – 9/4/2013 35

Page 36: DjangoCon 2013 - Rapid prototyping and communicating with clients

THANK YOU.

KAT CHUANG, PH.D. TWITTER @KATYCHUANG GITHUB @KATYCHUANG EMAIL [email protected]

36

Talk given at DjangoCon2013 – 9/4/2013


Related Documents