Reputation Pie


How can you learn about who your friends are in the real world? Reputation Pie is a Facebook integrated platform where you can rate your friends, tag to describe them, ask and answer questions about them.


reputationpie.com

ongoing +4 months

Design of ui and ux

Reputation Pie's target is young people between 18 - 38 years old. The design had to speak to them. We created a clean yet graphic interface in which people can interact easily with their Facebook data.


Development

This is a Ruby on Rails project. One of the most interesting parts of the app is the in depth integration with the Facebook API.

The development team is conformed by 2 engineers working full time.

class Facebook

  def initialize(user_token)
    @graph = Koala::Facebook::API.new(user_token)
  end

  def all_friends
    @graph.get_connections("me", "taggable_friends?fields=name, picture.width(215).height(215)")  
  end

  def info_user
    @graph.get_object("me")
  end

  def picture_user
    @graph.get_object('me', fields: "picture.width(215).height(215)")
  end

end
class TagsController < ApplicationController
  before_action :authenticate_user!
  before_action :check_current_user
  before_action :validation_user_friend
  before_action :initialize_model, only: [:add_friend_tag, :tags_friend_vote]

  def params_tag
    params.permit(:friend_id, :new_friend_tag, :tags_friend_id, :state)
  end

  def add_friend_tag
    friend_id = params_tag[:friend_id].to_i
    @tags_friends.add_friend_tag(friend_id, params_tag[:new_friend_tag])
    @tags = TagsFriend.where(friend_tagged_id: friend_id)
    render :json => {:tag => @tags }
  end

  def tags_friend_vote
    @tags_friends.tags_friend_vote(params_tag[:state], params_tag[:tags_friend_id], params_tag[:friend_id])
    @votes = TagsVote.vote_by_tag_friend(params_tag[:tags_friend_id], params_tag[:friend_id])
    render :json => {:vote => @votes }
  end

  def friend_latest_tags
    @vote = TagsVote.vote_by_tag_friend(params_tag[:tags_friend_id], params_tag[:friend_id])
    render :json => {:vote => @vote }
  end

  def count_profesional_tags
    count = Profession.count
    render :json => {:count => count}
  end

  private

  def initialize_model
    @tags_friends = ManageTagsFriends.new(current_user)
  end
end

Don't take our word for it. We run Therapy Sublet through Code Climate, and this third party app rates our code and gives us recommendations in how to improve it.



The Process

kick off call

To start the project our team met in Skype with Reputation Pie's team to fully understand the concept and brainstorm to execute some ideas.

Status updates

Every Monday we send a report on what the team was able to accomplish the prior week and what the plan is for the upcoming week.

trello - project management

We detail in cards all stories that need to happen in the project. When completed, each card shows an Acceptance Criteria, Pull Request to Github, and Test coverage.

Quality Assurance

A Sr Developer will conduct Code Reviews and accept or reject the story. When approved a member of the Q/A team tests the story in the production environment.

Deployments

We do weekly deploys to the project and push all new features to production.

Client approval

We will still need your feedback in this process to tell us whether it meets the needs or needs further tweaking. Ultimatelly the story must be accepted by you.