For those curious what the original Mingle2 was like, I’ve preserved the original Cake PHP version of Mingle2 here: this be a testament to Web 2.0 and the effectiveness of rapid development frameworks: I built a full-featured dating website, from concept to launch, in 66.5 hours.
In a typical 9-5 job this would amount to about a week and a half.
Note that we have bundler already installed during setup. There is an addon called Cloudinary which we will use.
In my opinion Ruby on Rails is one of the best web development frameworks ever developed.
I have been using Rails for more than a year and it’s quite exciting to work with it.
create_table "approvals", force: :cascade do |t| t.integer "user_id" t.integer "approved_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.datetime "user1_approval" t.datetime "user2_approval" t.datetime "denied_at" end class User has_many :approvals has_many :approved, through: :approvals has_many :inverse_users, class_name: "Approval", foreign_key: "approved_id" has_many :inverse_approvals, through: :inverse_users, source: :user class Approval def self.user_approval(user1, user2) sorted = [user1, user2].sort_by Approval.find_or_create_by(user: sorted, approved: sorted) end Doing that makes for a lot more rows in the database. I'm looking for a good architecture solution to Users approving & rejecting each other that allows me to make good queries like only showing create_table "decision", force: :cascade do |t| t.integer "id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.integer "decision_maker_id" t.integer "decision_receiver_id" t.boolean "approved" t.boolean "active" ....
end A decision represents any interaction between users. A responding swipe right from the opposite user is another decision.