Plugged In is a professional networking site built in Rails and Backbone #####Live Link
#####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)
- 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
- Form views on profile edit in place by inheriting from toggleable form superclass
- A user's experiences are sent down with user data as JSON and parsed into separate Backbone collections
- User model has built in methods to generate realistic seed data
- 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
- 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
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.
- Download/clone repository locally
- Open the terminal in the project directory and run
bundle install
- Run
bundle exec rspec
in the project directory
- 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.