Skip to content

Instantly share code, notes, and snippets.

@pecha7x
Last active August 23, 2016 08:29
Show Gist options
  • Save pecha7x/daba078185f5c79acb816250c847f825 to your computer and use it in GitHub Desktop.
Save pecha7x/daba078185f5c79acb816250c847f825 to your computer and use it in GitHub Desktop.

IF THIS IS YOUR FIRST TIME HERE READ THIS ENTIRE SECTION BEFORE YOU BEGIN

ABOUT SHOWMOJO

IN ONE SENTENCE Schedule and confirm showings with prospective renters and buyers 24/7 without even answering the phone.

THE LONGER PITCH ShowMojo fills a glaring gap in today's housing rental and sales process. While prospective tenants and buyers can and do easily find a plethora of available rental and sales listings online, the process inexplicably becomes an ordeal when they actually want to see the place. Missed phone calls. Email tag. The awkward SMS.

ShowMojo is the answer. Prospects schedule a showing where they found the listing -- online.

Owners and agents decide when they're available. Prospects select the time that suits them. ShowMojo actively manages the show times to build appointment clusters and minimize downtime between showings. Everyone gets an email with the showing details.

And it doesn't end there. ShowMojo will confirm the showing with each prospect 24 hours in advance. If the prospect doesn't reply back with a confirm or cancel, ShowMojo tries to confirm again, six hours before the showtime.

The result? A drastic reduction in no-shows. Less time waiting in front of the building playing on your iPhone (sorry Steve). More time showing property ... or doing whatever else you would rather be doing.

CHECK OUT THE DEVELOPMENT SITE

You can see ShowMojo by going to: https://dev.showmojo.com/l/d822315042 (user: bart, password: simpson). While you are there, schedule a showing. This is the point of release 1. Prospects can schedule showings online and the system automatically handles confirmation.

Then, go to http://dev.showmojo.com/users/sign\_in/. This is the site. You can see the account administration area by logging in using username: test / password: password

To create a new account, use a version of this url: http://dev.showmojo.com/users/sign\_up

SOME ADDITIONAL TECHNICAL INFORMATION

Rails Plugins Currently in Use:

  • Sass (to generate css - if you don't know what this is and you are working with css this is important)
  • Paperclip (for image attachment and manipulation)
  • Devise (for authentication)
  • Rspec (for Behavior Driven Testing)
  • Cucumber (for Behavior Driven Testing)
  • Factory Girl (Test data and Mock Object fabrication)
  • I'm sure there's more that I am not aware of (see Gemfile)

Also of Note:

  • The entire site runs under SSL
  • The database currently in use is PostgreSQL
  • The application has been converted to use jQuery instead of Prototype
  • All jQuery files are hosted by Google. Please continue this convention
  • ImageMagick must be installed on the host machine (for image manipulation via Paperclip)
  • Our initial deployment plan was Heroku, but I switched away from that for several reasons. (1) cost, (2) architecture limitations, (3) concerns around the limited number of dynos and worker threads

Sensitive Data

Any sensitive data MUST NOT to be commited to the repo!

For now we have:

  • config/database.yml
  • config/mailman.yml
  • config/s3.yml
  • config/smtp_servers.yml
  • config/postmark.yml
  • config/initializers/stripe.rb
  • config/initializers/google.rb

You should ask for this data as needed. Please read Wiki page

DELAYED JOBS AND DEPLOYING TO LINODE

The system uses a background job to improve performance. To start that job on your local machine use: "rake jobs:work".

For filling the database with the information required please perform the command rake db:seed.

To deploy to the Linode server execute the command "cap dev deploy" or "cap dev deploy:migrations" from the app's folder. The password is "show1mojo".

SUPPORTED BROWSERS (On Windows and Mac)

  • Internet Explorer 7, 8, 9 (and IE 6 on the Prospect Scheduler Page)
  • Firefox 3+
  • Safari 4+
  • Chrome (most recent release)

THE DEFINITION OF DONE ON THIS PROJECT

  1. The code working as requested.
  2. Tests written and running as part of "rake run_tests".
  3. If the task has visual changes, tested in at least three browsers (one of which must be a version of IE).
  4. Code checked into GitHub.
  5. Code deployed to the Linode server.

ON YOUR FIRST JOB

Spend an hour or two getting the code set up and understanding the task I've asked you to complete.

Before the end of two hours of work email me with:

  • A rough estimate of how long it will take you to complete the work
  • Any questions you have

Please email me BEFORE deploying to the Linode server.

SOME ADDITIONAL PROJECT INFORMATION

TERMS:

  • An OwnerAgent (was PropertyHolder): has an account with ShowMojo and is using that account to schedule showings for property that is for rent or for sale.
  • A Prospect: is a person who comes to ShowMojo and schedules a showing to see a property belonging to a OwnerAgent.
  • A Listing: represents a property, a collection of properties (five identical townhouses) or an aspect of a property (a residential advertisement for a live/work space)
  • A Calendar: records when a OwnerAgent is available to show his properties. Additionally, the Calendar allows the OwnerAgent to control how available Showtimes are presented to the Prospect, such as the frequency between showings and the number of Prospects who can book the same Showtime.

ASSERTIONS:

  • An OwnerAgent can add, edit, delete, make active, or make inactive a Listing
  • When the OwnerAgent has rented or sold the underlying property he will make the Listing inactive so Prospects do not schedule additional showings.
  • All active Listings are public. In most cases, Prospects will navigate to Listings through advertisements posted on the web by the OwnerAgent.
  • When a Prospect selects a showtime and submits his information to ShowMojo the showing is added to the OwnerAgent's dashboard, both OwnerAgent and Prospect receive an email notification of the showing, and the showing is considered confirmed (unless one party contacts the other to reschedule or cancel).
  • When a Prospect comes to ShowMojo to schedule a showing for an inactive Listing he will receive a message saying the property is no longer available.
  • Dashboard is the main page, the page that is shown when a user logs in or registers, and the page shown to the user when an operation is completed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment