Project Proposal

perchmysteriousΔιαχείριση Δεδομένων

1 Δεκ 2012 (πριν από 4 χρόνια και 10 μήνες)

211 εμφανίσεις

Chris Melusky

Senior Project Proposal

25 September 2012


Overview:


The
client
for this project
is my relative Steve Williams, who contacted my family about
the possibility of opening
an image
-
sharing
site.
The site will

b
e similar to those like
I
mgur
,
TinyPic,
or
Minus
, but with a
few small differences. It is being developed as a hobby
, so there
would be no restrictions when sharing or displaying source code.


Much of the
design and implementation for the site

iconiac.com

has already been
completed
, but

it is my goal to improve and expand upon the existing functionality. I will do this
by

addin
g support for OAuth authorization

and
user comments to images. I aim

to accomplish
both of

these by the conclusion of the

semeste
r. In addition, a mobile versi
on o
f the site will
developed sometime next year.


Background



i
coniac.com

has been in development since March of 2012
.
The
live/production server
runs CentOS Linux and Apache HTTP Server. I’ve been given a Subversion ID

to access the
code locally
.

i
coniac.com

is written in PHP
while the front
-
end is in HTML,
CSS, and
JavaScript. The registration

data is
currently
stored in a PostgreSQL database, an
d the image data
is stored in a
MongoDB
s
ystem, a
NoSQL
database management system
.


OAuth

is an open authentication protocol.
It allows users to grant an application access to
information stor
ed with another service provider
. This is done securely without a need to reveal
Melusky
2


username or password information to the new application. For this projec
t, OAuth will be used
primarily for registration and log
-
in purp
oses. Users may register or log

in using accounts for
Googl
e
,
Yahoo!
,
Facebook
, or
Twitter

without having to enter

credentials.
A number of image
-
sharing sites use this feature, but
iconiac.co
m

would be most similar to
Imgur
in this aspect.


Comments will likewise
be
developed
in a similar style

to
Imgur

with options to add new
comments, reply, and up or down vote co
mments. Comments will

be stored in the MongoDB
system
.



The mobile version of the site
i.iconiac.com

will be written

in HTML 5
. It will be styled
nearly
identically to the existing site
,

but will have an interface with dimensions more suitable
for mobile devices.


Milestones:

M0
: Add icons for
Google
,
Yahoo
!
,
Facebook
, and
Twitter

authentication to the site.

M1
:
Complete code for registration for one of the four sites.

M2
:
Complete code
for registration and log in for

Google
,
Yahoo!
,
Facebook
, and
Twitter
.






M0
is a
small
task that will be accomplished in
the next week.

The placement of the icons
following M0 will not necessarily reflect the final design of the webpage.
From th
e research
done so far, it seems

that implementing OAuth for the first site
would require

the most work, but
code for the remaining
sites could

be modified from the first with few changes.
The milestones
will require adjustment if this proves to be more difficult than expected.


The most challenging aspect
will be understanding how the OAuth protocol works
and
how to implement it in PH
P.
A second task will be learning how the
Google
,
Yahoo!
,
Facebook
,

Melusky
3


and
Twitter

APIs support OAuth.

Upon completion the second half of the semester will be spent
working with MongoDB and developing a comments system.




A potential risk is related to

the
differences between OAuth 1.0 and OAuth 2.0. Using
OAuth 2.0 would be ideal

for the site
, but it is possible that

the
Google
,
Yahoo!
,
Facebook
, or
Twitter

APIs might not support it
yet. If so,
OAuth 1.0
might have to be used
for that individual
site, w
hich may or may not be possible.
It would be

best to minimize risk
and the reworking of
code
by
researching
this early.


Hardware
and Software
Requirements

(for local development):

-
D
esktop PC with minimum dual
-
core 2.5 GHz processor,
1 GB RAM
,
Windows
XP/Vista/7

-
Tablet PC or smartphone running Android 2.3 or newer

-

Eclipse 4.2 Juno



Integrated Development Environment


-
with PHP Developer Tools (PDT)

-
TortoiseSVN



Subversion client

-
WAPP

Stack


open
-
source stack with Apache

HTTP Server
, PostgreSQL,
and PHP

-
MongoDB


NoSQL DBM
S

-
MongoVue


MongoDB GUI for Windows

-
Useful browser extensions: Firebug and JSONView


Resources:

PHP Cookbook

--

David Sklar and Adam Trachtenberg

JavaScript: The Definitive Guide

--

David Flanagan

jQuery Cookbook

--

Cody Lindley

Melusky
4


MongoDB: The Definitive Guide

--

Kristina Chodorow and Michael Dirolf


“OAuth for Beginners”
--

Alex Henderson


http://blog.bittercoder.com/?p=83488336

“OAuth Consumer and Server Library for PHP”
--

Google


http://code.google.com/p/oauth
-
php
/

“Using OAuth 2.0 to Access Google APIs”
--

Google


https://developers.google.com/accounts/docs/OAuth2

“Authentication


Facebook Developers”


Facebook


https://developers.facebook.com/docs/authentication/

“OAuth Authorization Model”


Yahoo!


http://dev
eloper.yahoo.com/oauth/

“Using OAuth | Twitter Developers”


Twitter


https://dev.twitter.com/docs/auth/using
-
oauth

“PHP: OAuth


Manual”


The PHP Group


http://php.net/manual/en/book.oauth.php

“PHP: Mongo


Manual”


The PHP Group


http://php.net/manual/
en/book.mongo.php