Social Networking using ROR

  • 462 views
Uploaded on

This is an academic project implemented using ruby on rails.

This is an academic project implemented using ruby on rails.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
462
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. CmpE 275Fall 2009
    Project 3
    Ideazz.. (A networking website for Ideas)
    On
    RUBY ON RAILS
    Specifications Document
    Team Name:Ants
    Dhaval Patel006500481
    Shivanshu Singh006488300
    CONTENTS
    TOC * MERGEFORMAT 1.Introduction to Ideazz.. PAGEREF _Toc122013996 h 3
    2.Ideazz: The Architecture & Specifications PAGEREF _Toc122013997 h 3
    2.1Ideazz: Database PAGEREF _Toc122013998 h 3
    2.2Ideazz: Model PAGEREF _Toc122013999 h 4
    2.3Ideazz: Controller PAGEREF _Toc122014000 h 5
    2.4Ideazz: View PAGEREF _Toc122014001 h 5
    2.5Act As Authenticated PAGEREF _Toc122014002 h 5
    3.Ideazz.. : Features & A Tour PAGEREF _Toc122014003 h 5
    3.1Welcome Page PAGEREF _Toc122014004 h 5
    3.2Sign Up: PAGEREF _Toc122014005 h 6
    3.3Cloud PAGEREF _Toc122014006 h 7
    3.4Aggregation PAGEREF _Toc122014007 h 7
    3.5Profiles PAGEREF _Toc122014008 h 8
    3.6EXPLORE PAGEREF _Toc122014009 h 8
    3.7PEOPLE PAGEREF _Toc122014010 h 9
    3.8Idea PAGEREF _Toc122014011 h 9
    3.9Search PAGEREF _Toc122014012 h 10
    3.10My Ideazz.. PAGEREF _Toc122014013 h 11
    3.11New Idea PAGEREF _Toc122014014 h 11
    4.Future Work PAGEREF _Toc122014015 h 12
    Introduction to Ideazz..
    Ideazz..is a social networking website for ideas. The website is, supposedly, one of a kind and the niche of Ideazz is to be a collaboration platform, where collaboration platform support idea threads, where a user can publish his/her idea, and all the users can view the ideas, decide for its strength and weaknesses and post reponses accordingly with their comments. Ideazz also provides a profile management system, where every user can create a general profile and the user also has the capability to search ideas and others users based on keywords.
    The key feature in ideas is when a user goes on any random idea page, the page not only shows the idea and the responses but acts as a mash up page, mashing us results from services such as Google, Youtube, Google Blogs, Google Image, Google News, Twitter etc. These results are based on the idea, thus providing the users the ability to think and explore beyond what’s posted on the website.
    Ideazz: The Architecture& Specifications
    Ideazz is completely built on ruby on rails. It has an MVC architecture, where there are various models, view and controllers. The sections below discuss each of these in detail.
    Before we get into that lets look into the database tables that we have used in this project
    Ideazz: Database
    1-> Table Users
    login, :string
    email, :string
    crypted_password, :string
    salt, :string
    created_at, :datetime
    updated_at, :datetime
    remember_token, :string
    remember_token_expires_at, :datetime
    2-> Table UserData
    user_id:integer
    first_name:string
    last_name:string
    gender:string
    email:string
    profile_pic_urr:string
    occupation:string,
    hobbies:string
    web:string
    company:string
    city:string
    state:string
    zip_code:string
    3-> Table Idea
    title:string
    preview, :string
    body, :string
    owner_login, :string
    updated_at,:datetime
    4-> Table IdeaPost
    idea_id:integer
    body,:string
    owner_login,:string
    created_at,:datetime
    Table user and user data has been kept separate. User table stores the login information of the user and table UserData stores the profile information and every information of user is mapped to their respective userdata.
    Table idea is responsible for storing Idea and IdeaPost stores the responses and every idea is mapped to their respective idea posts.
    Ideazz: Model
    This section will list out all the model created in the project and the functions that each model has. Every table in the database corresponds to toamdel in this section. The models are also responsible for validations before saving the entry in the database. When the validation does not pass the user is prompted to change the value of that field and then try again.
    List of models
    User
    UserData
    Idea
    IdeaPost
    Ideazz: Controller
    There is a controller for each model and there is an extra controller called as Profile. Profile controller is responsible for contacting UserData model and display the result on the view. But when the user desires to update the profile, in that case the UserData controller is in action. The reason for this split of functions across two controllers, is from the future point of view to modify the profile page to show more than just the UserData. We might in future include feeds and decide to show the user his profiles from other services as well. We might include a photo album and concatenate them too in the profile controller to give the user an overall view to his/her profile
    User also has the ability to view other members’ profiles as well, the view of the other profiles are similar to the personal profile, the view of the profile has been kept uniform.
    Ideazz: View
    In view we have not written a general CSS file or used the application.html.erb file, in order to define a general view. Not doing it definitely increased our work but at the same time it gave us the flexibility to change the view according to our needs on every page. This we believe gave us more flexibility, ergo we created a more user friendly and navigation able UI. For any idea, we have the various responses that people post for that idea and more importantly a research portal which aggregates the web searches on the idea, blogsearcges, videos, images etc. This is so that the people participating in the discussion o not just comment but make an informed and intelligent comment.
    Act As Authenticated
    We have used act as authenticated plugin for user login and authentication. Using a plugin for user login gave us more time to concentrate on other features of the wed. The plugin uses SHA encryption for passwords and therefore we can say that it is reasonably secure.
    Ideazz..: Features& A Tour
    Welcome Page
    Sign Up:
    Cloud
    While developing this project, we have realized Web 2.0 and tried to extend that to a concept. We like to call it Web 2.1. The entire project does not save anything else except for test rest is all out there on the cloud, e.g. images etc.
    Aggregation
    The application provides an aggragation of various kinds of content from the internet, for the idea in question. It includes web search, images, videos, blogs, wikipedia and twitter.
    Profiles
    People can create their custom profiles and edit their data. This is helpful for other to connect and collaborate with fellow members.
    EXPLORE
    This section of the application lists all the ideas out there so that people can search and view what is it that others are thinking about.
    PEOPLE
    This section of the application lists all the members so that people can search and view the profiles of fellow members.
    Idea
    Every idea can be viewed and along with it anyone can see whatever responses people have given for it.
    Along with this comes the web aggregation feature that we talked about earlier.
    Search
    Ideas:People can search for ideas out there. The search is done based on keywords and it searchs the titles and descriptions of ideas to see of there is anything relevant out there.
    People: People can also search for other people, based on keywords and the first name and last name are scanned for keywords.
    My Ideazz..
    People can see their own ideas that they posted here.
    New Idea
    Future Work
    This project proved to be a nice starting point for us to learn ruby on rails. We tried to do as much as we could in the limited amount of time; however, a lot of things remain for future work. For example, we currently have the web searches being done on the client side. While this is beneficial as this reduces the server’s process and hence faster response time, we cannot cache these results. So, we can do some of this on the server side and cache those results to balance this out. Moreover, we can also have a search functionality to mine the internal ideazz database and aggregate this content as well to the content aggregation feature as well. Also, we can have groups for a more closely knitted and private idea development. Also, user can have the choice of making an idea public or private. We can also have a module to generate advertisements about ideas and maybe other plans that users define on top of bare ideas. These advertisements can be fed to an advertising service and people can probably generate venture capital money to maybe take the idea forward into something real.