/PluggedIn

Professional networking site in Rails and Backbone

Primary LanguageRuby

Plugged In

Plugged In is a professional networking site built in Rails and Backbone #####Live Link

Challenge Overview

#####Problem: Implement the core functionality of a professional networking site (e.g. LinkedIn) #####Solution: Full stack solution uses a RESTful Rails API that delivers JSON to Backbone front­end (feature and implementation detail below)

Project Detail

Features

  • Create accounts and sessions (log in)
  • Create profiles with personal information and add past job/school experiences
  • Edit profiles in place by double clicking the text
  • Request to connect with other users and view connections
  • Send messages to other users
  • Search for users
  • Take a website tour on login or sign in with a demo account

Implementation

Profiles, Users, and Experiences

Connections

  • Connections rely on two database tables (connections and user_connections) to cleanly implement two-way friendships
  • Connect button subview allows users to issue connection requests across various user views; permits options available based on a user's connection status with the current user
  • Connected users index view displays a user's approved connections while paginating results

Messages/Search

  • Navigation between inbox pages occurs using the router and a getOrFetch method to ensure data persists across hard refreshes
  • API Static Controller processes search query with PGSearch and paginates results with Kaminari
  • Search results view uses infinite scroll to improve load time and UX

###Test Coverage

  • Model tests: initial coverage complete
  • Controller tests: initial coverage complete
  • Integration tests: in process
  • JavaScript tests: to implement

Note: filling out test coverage is highest priority of outstanding to dos

Technical Choices

The features implemented in this project where chosen to replicate the core experience of using a professional networking site. These features centered around the experience of creating a profile and connecting with other users (e.g. connections, search, messaging, profiles). Features that did not demonstrate a unique programming skill set or whose presence would not significantly add to the experience of using the website were excluded in this version of the project.

  • For example, company pages were not implemented because their architecture would have largely duplicated that of user profiles
  • Additionally, email verification was not implemented because it would detract from the UX of a website primarily built for demonstration purposes

However, additional features whose absence might not be immediately noticed would need to be added to complete a production-grade app. Those include more expansive test coverage, email verification/notifications, profile privacy and user settings, notifications, flashes, and multiple login.

Build

First steps

  • Download/clone repository locally
  • Open the terminal in the project directory and run bundle install

To run model and controller tests

  • Run bundle exec rspec in the project directory

Note

  • Hosting locally may not be possible because User model depends on AWS access keys

##About the Developer I am an NYC-based web developer with experience in Rails and JavaScript. After graduating from Dartmouth in 2013, I worked as an analytic strategy consultant. During that time I began teaching myself to code and ultimately decided to pursue programming full time.

Online Presence

Other Projects