CPF Market


CPF Market is a commercial real state financing web application.

It allows borrowers to present their financing projects. It also allows lenders search for financing opportunities.



Design of ui and ux

The design for CPF Market had to be sober. We went with a study of cool colors and serif fonts. We collaborated with CPF Market's team to arrive to a functional solution for their users.


Development

We created this app in Ruby on Rails.

We integrated with Stripe which allows users to pay with a credit card. We also implemented promotional codes which is agregated directly to the data bases.

Moreover, we implented Active Admin which is a Ruby on Rails framework that creates the app administration with a clean and easy to use interface.

The development team was conformed by 1 engineer working full time.

def code_used?
  errors.add(:code, "Code used") if used
  used
end

def find_promotional_code(params)
  PromotionalCode.find_by(code: params[:code])
end
require 'rails_helper'

RSpec.describe PromotionalCode, :type => :model do
  describe '.promotional_code' do
    promotional_code = FactoryGirl.create(:promotional_code)

    context 'code used' do
      result = promotional_code.used?
      it { expect(result).to be(false) }
    end
  end
end
def payment_with_promotional_code
  if find_promotional_code
    find_promotional_code.update_attributes(used: true) if current_user.set_payment
    redirect_to  properties_path
  elsif find_promotional_code.nil?
    redirect_to new_property_path, alert: "Please make sure you have a valid code"
  else
    redirect_to new_property_path, alert: "Please make sure you have a valid code"
  end
end
require 'rails_helper'

RSpec.describe ChargesController, :type => :controller do

  describe "payment with promotional code" do
    promotional_code = FactoryGirl.create(:promotional_code)

    context "promotional code valid" do
      result = promotional_code.find_promotional_code(code: "M18A")
      it { expect(result).not_to be_nil } 
      it { expect {promotional_code.update(used: true)}}
    end

    context "promotional code not valid" do
      result = promotional_code.find_promotional_code(code: "H75")
      it { result.should be_nil }
    end

    context "promotional code nil" do
      it { expect(promotional_code.code).not_to be_empty }
    end
  end
end

Don't take our word for it.

We run CPF Market through Code Climate, and this third party app rates our code and gives us recommendations in how to improve it.


Our Process

Meetings

We have weekly calls where we discuss progress. We use Skype, Google Hangouts or GotoMeeting.

We agreed on a day and time that worked for everyone.

Planning

In the beginning we send a timeline specifying the planning and tasks for that week.

These tasks are the same cards we have planned in Trello.

Trello

We translate all requirements into stories in Trello Cards.

Trello is the place to add any specification, ask questions or comments to the team.

Deliveries

Once the tasks are done they go through a testing process and we pass them for your approval.

Every week we will pass cards onto the client list for you to give us feedback.

Quality Assurance

Once the functionality is completed one of our functional testers will try to break the feature.

We either move it to Needs Improvement or pass it to you for feedback.

Feedback

We need the support from you to review the cards and Approve them or tell us how to improve it.

This is key to meet goals and being on time in the development of the application.