TODO

  • Better/more minimalistic view for mobile.

    Maybe it should be text only?

    The table columns take up way too much space.

     - Make the email text all streamlined, where it shows picture,
       followed by who wrote it, followed by the email body followed
       by respond/ignore buttons.
    
    - THe respond/remove buttons should be larger on iphones (make them responsive?)
    
    - The remove button should be "ignore"
    
     - The text should be larger.  Much larger.  Can't read it on my iphone.
    
     - What about making the "Respond" button open up to the basic html interface?
       That could speed things up.
    
     - Look at Ramit Seethi's emails; his are easy to read on a phone.
    
     - Change the "Reply" button to redirect to site, then to Gmail compose.
  • Implement capistrabo deoploys; should recompile assets on deploy and restart sidekiq

  • Bug in displaying text with slashes (e.g. the text “100/hr” only shows the “/hr”).

  • Buy a bunch of private proxies and route the Rapportive requests through that www.myprivateproxy.net/buy.php

  • Email analysis optimization: don’t do a rapportive lookup unless the email is last in the thread (otherwise you won’t need it and the image may never be displayed)

  • Look at ActiveJob not just for scheduling sidekiq jobs, but delivering the FollowupMailer.daily as well (update devise?)

  • Setup Mixpanel

  • Signups

  • Unsubscribes

  • Daily summary mail read

  • Daily summary mail sent

  • Privacy Policy

  • Deploy to Heroku failed; git push is too big I think with the NLP libraries..

  • Get build of talon working on the CI server. Check in that build too (maybe build to another director; unbuntu_build?)

  • How to make this performant when someone requests for the first time?

    – FollowupWorker just creates the gmail object pool – FollowupInboxWorker accesses the gmail object poll and downloads the emails for a given day – FollowupEmailWorker processes an email – EmailProfileInfoWorker downloads info for a given email – EmailProfileImageWorker downloads info for a given email


    – What about just downloading the subject/headers? If they pass the first round of filters, then download the body?

    – What about creating a sidekiq job (or Thread?) for each day that we need to download emails for. So single gmail object (stor

    – Is it possible to request multiple messages in parallel (e.msg) since this is the most time consuming?

    – Start a bunch of sidekiq jobs to process email and download images? – Use the new ActiveJob?

    -- Requires devise update ( https://github.com/plataformatec/devise/pull/3153) to get to Rails 4.2
  • Why isn’t this message showing up in sent? mail.google.com/mail/u/0/#sent/14803bf68ba0bd00

  • The Python program will need to be recompiled under Unbuntu – Is there a way to maintain both compiles? Control by symlink?

  • Cron job to schedule the sending of daily emails

  • Remove an email from the list (to stop the tracking)

  • Refine the “followup” scenario; when someone hasn’t responded, call that out.

  • Have the user specify their timeone

  • Put up a minimal homepage

  • Deploy to Heroku; queues running on BlueVM

  • Respond to email inline?

  • Implement images for the individual emails. Can query rapportive with this gem :

    patrickperey.com/find-anyones-email-a-ruby-script/ github.com/the4dpatrick/possible-email – Done

  • Create a model “EmailThread” that has_many :emails

    • The thread model contains a timestamp of the last email in the thread.

    – Done

    • Can query the thread for followup? (one email sent from owner, no response) or response? (lots of emails, last email had questions in it). – Done

    – PossibleEmail returns an empty response iobject when nothing is found, but when somethign is found

     the data element is on the response object.  Querying for whether a  the data element is on the object is just weird
    
     -- Remove any of the puts statements. They're extraneous.
     --
    
    text = <<-TEXT

Hey -

Social Distortion is playing in Sacramento on Thursday, October 2nd. www.socialdistortion.com/tours/

If I bought the tickets, would you want to go?

Jim

   TEXT

require 'stanford-core-nlp'

StanfordCoreNLP.jar_path = "/Users/aantix/dev/followup/libs/stanford-core-nlp-full/"
StanfordCoreNLP.model_path = "/Users/aantix/dev/followup/libs/stanford-core-nlp-full/"

new_text = text.gsub("\n", " ")
pipeline = StanfordCoreNLP.load(:tokenize, :ssplit, :pos, :lemma, :parse, :ner, :dcoref)
ttext    = StanfordCoreNLP::Annotation.new(new_text)
pipeline.annotate(ttext)

i = 0
ttext.get(:sentences).each do |sentence|
	  puts "#{i} - #{sentence.to_s}"
	  i+=1
end