cs 382 database-driven websites instructor: dr. xenia mountrouidou cs382 1

46
CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

Upload: alaina-todd

Post on 23-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382 1

CS 382DATABASE-DRIVEN WEBSITES

Instructor: Dr. Xenia Mountrouidou

Page 2: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Who am I?

Dr. X PhD at North Carolina State University Worked for IBM Post doc at College of William and Mary Scuba diver, manga comics collector,

science fiction reader.

2

Page 3: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Course Objectives

At the end of this class you will be able to: Design and implement a professional database-

driven website Develop interactive websites with PHP and

Ruby on Rails Design and interface with a MySQL database

through PHP and Ruby on Rails Understand the performance and security

issues with database-drive websites

2

Page 4: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

4

Why did you take CS 382?

Page 5: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Why do you need CS 382?

The majority of professional webpages use a database… or multiple databases Examples?

Software development: Middleware Web development

Cloud computing

4

Page 6: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Lectures

Check the schedule in the class webpage All slides are posted but may be revised accordingly

Read the syllabus and policies carefully Reading and labs will be posted online

You will need to prepare for hands on class exercises

6

Page 7: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Lectures

Lectures will be interactive. This means: You will need to study the new material

before every lecture (slides, book, and online material)

We will have a lab on every lecture… which means coding

6

Page 8: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

How to get help

Join my office hours: M/W/F 9:00-10:30 am at Merritt Penticoff 203

Or set an appointment with me via e-mail

Use the recommended textbooks (on Blackboard, Documents): PHP and MySQL Web Development, 4th

Edition (Developer's Library Series), by Luke Welling, Laura Thomson

Agile Web Development with Rails, by Sam Ruby

7

Page 9: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

9

Office hours and help-My schedule

Monday Tuesday Wednesday Thursday Friday

9:00 am

Office hours

Office hours

Office hours :30

CS 382 prep

10:00 am

:30 CS 150 prep CS 150 prep CS 150 prep

11:00 am CS 150

CS 150

CS 150

:30 CS 455 prep

12:00 am Lunch Lunch

RCSS club meeting

Lunch Lunch :30

1:00 pm CS 150

CS 455 prep CS 150

CS 150

:30

CS 455 CS 455 2:00 pm

CS 382 prep CS 382 prep

Research work

:30

3:00 pm

CS 382 CS 300 CS 382 CS 300 :30

4:00 pm

CS 300 prep CS 300 prep CS 300 prep Recording Lectures

:30

5:00 pm

:30

Color code: green – available, purple – in class,

black – available by appointment only,red – please do not disturb

 

Page 10: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Grading

Labs 10%Project 40%Homework 30%Final exam 20%Total 100%

8

Homework and Programming projects will be posted online on the class webpage

Page 11: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

11

How to be successful in this class Complete all homework assignments

On time! Practice with coding:

Codeacademy: http://www.codecademy.com/tracks/ruby

W3Schools: http://www.w3schools.com/php/default.asp

Codeschool: http://www.codeschool.com/courses/try-rubyhttp://www.codeschool.com/courses/rails-for-zombies-redux

Page 12: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

12

How to be successful in this class If you like tutorials: CODE!! Don’t just

read Good PHP tutorials

http://www.tizag.com/phpT/ http://php.net/manual/en/tutorial.php http://www.webmonkey.com/2010/02/php_tutori

al_for_beginners/

Good Ruby tutorials: http://rubymonk.com/ http://mislav.uniqpath.com/poignant-guide/

Good Rails tutorials: http://

guides.rubyonrails.org/getting_started.html

Page 13: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

13

How to be successful in this class Dedicate time, work smarter not harder:

Ask immediate feedback Do not just read, try to explain what you

read… to your grandma! Check the StudyHacks blog:

http://calnewport.com/blog/2012/10/26/mastering-linear-algebra-in-10-days-astounding-experiments-in-ultra-learning/#more-2537

Page 14: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Programming Project

You can start working on this from the first week of the class

Design and implementation of a professional website with a database: Professional Style Interactive

I will post some topics You may complete the project in teams

of two

9

Page 15: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Programming Project

Your project should have the following features:1. Use a Server-Side Framework – PHP or Ruby2. Database – use MySQL database (you may have to create it)

You may use a template for the page appearance or design your own http://www.freecsstemplates.org/ http://

www.free-css.com/free-css-templates/page1

http://www.templateworld.com/free_templates.html

9

Page 16: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Programming Projects

1. Outreach website with database2. Entertainment website with database:

Movies Songs Art from JU (performances, works of art)

3. E-commerce website Pet store Book store

4. Blog Microblogging Technology blog

5. More project ideas: http://codeforamerica.org/projects/

9

Page 17: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

17

Homework

It will involve: Applying what we learned in class Clean design and coding Clear documentation (README files)

Homework will be completed individually

Page 18: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

18

Policies

Cheating means “submitting, without proper attribution, any computer code that is directly traceable to the computer code written by another person.”

Or even better: “Any form of cheating, including concealed notes during exams, copying or allowing

others to copy from an exam, students substituting for one another in exams, submission of another person’s work for evaluation, preparing work for another person’s submission, unauthorized collaboration on an assignment, submission of the same or substantially similar work for two courses without the permission of the professors. Plagiarism is a form of Academic Misconduct that involves taking either direct quotes or slightly altered, paraphrased material from a source without proper citations and thereby failing to credit the original author. Cutting and pasting from any source including the Internet, as well as purchasing papers, are forms of plagiarism.”

Students earn F for any homework assignment that they have cheated.

A second cheating attempt will be escalated to the chair of the Division with consequences on the student’s graduation.

Page 19: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

19

Policies

You may discuss homework problems with classmates, after you have made a serious effort in trying the homework on your own.

You can use ideas from the literature (with proper citation).

You can use anything from the textbooks/notes.

The code you submit must be written completely by you.

Page 20: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

20

Policies

Read the collaboration policy carefully. Late policy:

2% is reduced by every day the homework is late

Page 21: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Principles of Pair Programming

10

Page 22: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Principles of Pair Programming All I Really Need to Know about pair

programming I Learned in Kindergarten Share everything. Play fair. Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when you hurt somebody.

12

Page 23: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

Principles of Pair Programming

Wash your hands before you eat. Flush. Warm cookies and cold milk are good for

you. Live a balanced life – learn some and think

some and draw and paint and sing and Dance and play and work every day some. Take a nap every afternoon. When you go out into the world, watch out

for traffic, hold hands and stick together. Be aware of wonder.

13

Page 24: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

24

Professional Portfolio

A collection of projects you implemented for a class or for fun.

Examples: http://lesterchan.net/portfolio/programming

/ http://michaelmohammed.com/portfolio.ht

ml http://www.quality-web-programming.com/

web-programming-portfolio.php http://

www.energyscripts.com/Portfolio/web_programming.html

Page 25: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

The INTERNET… and a bit of history15

CS382

Page 26: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

26

What is the internet?

A “series of tubes” How many Internets are out there? Is Google one of them?

Page 27: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

27

What is the internet?

A collection of computer networks that use a protocol to exchange data

Is the World Wide Web (WWW) and the internet the same?

Page 28: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

28

Key aspects of the internet

Sub-networks are independent Computers can dynamically join and

leave the network Built on open standards Lack of centralized control (mostly) Everyone can use it with simple,

commonly available software

Page 29: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

29

People and organizations

Internet Engineering Task Force (IETF): internet protocol standards

Internet Corporation for Assigned Names and Numbers (ICANN): decides top-level domain names

World Wide Web Consortium (W3C): web standards

Page 30: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS38230

Layered architecture

Page 31: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

31

Internet Protocol (IP)

Simple protocol for data exchange between computers

IP Addresses: 32-bit for IPv5 128-bit for IPv6

Page 32: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

32

Transmission Control Protocol (TCP)

Adds multiplexing, guaranteed message delivery on top of IP

Multiplexing: multiple programs using the same IP address

Port: a number given to each program or service port 80: web browser (port 443 for secure browsing) port 25: email port 22: ssh

Some programs (games, streaming media programs) use simpler UDP protocol instead of TCP

Page 33: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

33

Web Servers

Web server: software that listens for web page requests Apache Microsoft Internet Information Server (IIS)

Page 34: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

34

Application Server

Software framework that provides an environment where applications can run Apache Glassfish WebSphere WebLogic

Page 35: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

35

Web Browser

Web browser: fetches/displays documents from web servers Mozilla Firefox Microsoft Internet Explorer (IE) Apple Safari Google Chrome Opera

Page 36: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

36

Domain Name Server (DNS)

Set of servers that map written names to IP addresses Example: ju.edu → 204.29.160.73

Many systems maintain a local cache called a hosts file Windows: C:\Windows\system32\drivers\

etc\hosts Mac: /private/etc/hosts Linux: /etc/hosts

Page 37: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

37

Uniform Resource Locator (URL) Identifier for the location of a document

on a web site Example: http://dept.ju.edu/cs/index.html

Upon entering this URL into the browser, it would: ask the DNS server for the IP address of

dept.ju.edu connect to that IP address at port 80 ask the server to GET /cs/index.html display the resulting page on the screen

Page 38: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

38

Hypertext Transport Protocol (HTTP)

Set of commands understood by a web server and sent from a browser

Some HTTP commands (your browser sends these internally): GET filename : download POST filename : send a web form response PUT filename : upload

Exercise: simulate a browser with a terminal window

Page 39: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

39

HTTP Error Codes

When something goes wrong, the web server returns a special "error code" number

Common error codes:Number Meaning200 OK

301-303page has moved (permanently or temporarily)

403 you are forbidden to access this page

404 page not found

500 internal server error

Page 40: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

40

Web Languages

Hypertext Markup Language (HTML): used for writing web pages

Cascading Style Sheets (CSS): stylistic info for web pages

PHP Hypertext Processor (PHP): dynamically create pages on a web server

JavaScript: interactive and programmable web pages

Page 41: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

41

Web Languages(cont.)

Asynchronous JavaScript and XML (Ajax): accessing data for web applications

eXtensible Markup Language (XML): metalanguage for organizing data

Ruby on Rails

Page 42: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382 42

DATABASE DRIVEN WEBSITES

Page 43: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

43

What is a database driven website? Information changes often!

Page 44: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

44

Examples?

Page 45: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

45

Technologies

PHP JSP ASP PERL Cold Fusion Ruby Python

Page 46: CS 382 DATABASE-DRIVEN WEBSITES Instructor: Dr. Xenia Mountrouidou CS382 1

CS382

46

Client vs server programming