putting together a web app
TRANSCRIPT
There’s so much to learn?
PHP
Ruby
.net
Java
Rails
Python Django
CakePHP
Codeignitor
Node.js
Javascript
Sinatra
See: www.bestwebframeworks.com
Layout the site
Voices.com
User registration
User profiles
User pins
Main feed Commenting Categories
‘Like’ ‘Repin’ ‘Follow’
pinterest.com
Wireframing
• Draw out 4 pages (make copies)
• Each ‘activity’ on the site should be completed in no more than 4 steps
Wireframing E.g. Layout the profile page • Where everything should be • How to share files • What options users should have
(Download audio files, create / edit / delete jobs)
Wireframing E.g. Searching for voice talent • Where everything should be • What fields? – Affects models • How to display data • What user should do with the data
See: http://blogs.voices.com/thebiz/2006/09/web20_sketch_to_screenshot.html Or http://bit.ly/wireframevoices
Wireframing (.PSD)
Design the first user experience (or blank state) • What can the user do before
they sign up? • What to show with no user
data?
Read: http://37signals.com/svn/archives/000578.php Or http://bit.ly/37signalsblank
Wireframing (.PSD)
Think about how you present data • Masonry style • Unlimited scrolling / pagination • Customized content • Jquery/HTML5
Wireframing (.PSD)
Think about how you present data • Think about actions • Same page/ New page • What data to show • Fixed columns • Scrolling
What is Model View Controller (MVC)
From: http://www.moock.org/lectures/mvc/ For Rails: http://betterexplained.com/articles/intermediate-rails-understanding-models-views-and-controllers/ (or http://bit.ly/railsmvc )
Planning your database schema
Overview of designing your schema http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx or http://bit.ly/dbschema
• Tables should represent real world things / events (user, invoice, books, follow, friend, message, comment)
• Primary key (a column that contains unique values in a table – no dupes) (UserId, CommentId, UniqueURL) – can’t change (usually whole number)
• Foreign keys (denote relationships) (one-to-one, one-to-many, many-to-many)
What is an app? (May be Django Specific)
• Avoid monolithic design • A simple app has 12
installed apps
Use admin systems to CRUD data
The beauty of Django is that early in the process, you can easily set up an admin system to start adding data. Helps you show your app is live and growing, albeit manually.
Defining Model Methods
• Is associated with behaviors – Is Chilean?
(Address is in Chile, IP is in Chile, Geographic coordinates in Chile)
– Is Mike_Arrington? (FirstName + LastName = Mike Arrington)
– AllUserPins (Find all pins by UserId)
– Is Paid User? (last successful invoicing date = this.month)
View fields
• Templates (nesting)
• Multiple views (blocks of content)
• Not just Http (json, pdf, xml, csv…)
• Forms
• Flexibility not Scalability
• User experience not flashy elements
• Reusability not specificity
• Functionality not perfect code
• MVP not full feature sets
Focus on
Ryan Lou [email protected]
Read: www.Validating.it
This presentation was given to a group of participants from Startup Chile. To apply: Go to http://bit.ly/applysup