Sellers n Bloggers is a company that enables users to buy products from their favorite blogs and bloggers to turn their blogging platform into an e-commerce shop.
By adding a widget to a blog you can offer to sell products of your favorite brands.
Sellers n Bloggers is a company that enables users to buy products from their favorite blogs and bloggers to turn their blogging platform into an e-commerce shop.
By adding a widget to a blog you can offer to sell products of your favorite brands.
For the design of "Sellers and Bloggers" we used a simple flat UI. With an easy to use experience and simple admin dashboard we went for solid colors with big yellow buttons for easy recognition and consistency.
This app was developed using Ruby on Rails. Integrated with Braintree as a payment gateway.
An essential part of this app was the creation and implementation of the Plug-in. Bloggers can add this into a Blog, and this would allow us to interact with the information provided by the app.
We implemented a very simple form of communication between "Bloggers" and "Brands" through messages within the platform.
Sales of products are displayed as reports, as well as a CRT for each product. In both dashboards, in "Bloggers" and “Brands" we can observe real information of all activities generated by the app.
class Sale < ActiveRecord::Base belongs_to :brand belongs_to :buyer belongs_to :blogger belongs_to :product belongs_to :size, class_name: "ProductTalla", foreign_key: :talla attr_accessor :name_buy after_create :sent_purchase_confirmation_mail, :update_item_stock after_update :sent_mail scope :current_month, -> { in_month(Time.now.month) } scope :by_order, -> (order_num) { where(order_num: order_num) } scope :in_month, -> (month) { where("extract(month from sales.created_at) = ? AND extract(year from sales.created_at) = ?", month, Time.now.year) } scope :all_sales_sent, -> { where(sent: true) } scope :all_sales_delivered, -> { where(delivered: true) } scope :all_sales_liquidated, -> { where(liquidated: true) } scope :all_sales_of_blogger, -> (blogger_id) { joins(:product).where(blogger_id: blogger_id) } scope :all_sales_by_month, -> (year, month, day) { where(created_at: DateTime.new(year, month, 1)..DateTime.new(year, month, day, 23, 59, 59)) } scope :in_process, ->{ where(delivered: false, sent: [true, false]) } scope :between_dates, -> (date_ini, date_end) { where(created_at: date_ini..date_end).order('created_at DESC') } def self.all_sales_of_blogger_between_dates(blogger_id, date_ini, date_end) @date_ini = date_nil_or_empty?(date_ini) ? DateTime.parse("2015-01-01") : DateTime.parse(date_ini) @date_end = date_nil_or_empty?(date_end) ? DateTime.now() : DateTime.parse(date_end)+0.99999 all_sales_of_blogger(blogger_id).between_dates(@date_ini, @date_end) end def self.date_nil_or_empty?(date) date.nil? || date.empty? ? true : false end end
require 'rails_helper' describe Blogger do describe "Configuration" do let(:blogger) { build(:blogger)} it("should have a token when is created") do expect{ blogger.save}.to change { Token.count }.by(1) end it("should have a token when is created") do expect(blogger).to receive(:set_token) blogger.save end end end
class Message < ActiveRecord::Base belongs_to :brand belongs_to :blogger validates_presence_of :title, :message, :blogger_id, :brand_id after_save :send_email after_save :send_notification def send_email @brand = Brand.find(self.brand_id) @blogger = Blogger.find(self.blogger_id) ContactMailer.brand_email(@brand, @blogger, self.title, self.message).deliver end def send_notification Notification.create(user_id: self.blogger_id, notification_type_id: 7, brand_id: self.brand_id) end end
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.
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.
We translate all requirements into stories in Trello Cards.
Trello is the place to add any specification, ask questions or comments to the team.
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.
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.
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.