Thursday, October 17, 2013

Out of Balance

I'm odd.  Because I can't be in balance.  I'm sort of in balance.  But I can't be totally in balance.  That means I can't lift weights (mainly because I don't want to) and be a crackerjack programmer.  Because that's all I want to be, an awesome gobstoppingly good amazing programmer ... and maybe an amazing engineer.

Who knows?  Maybe one day I can build a series of Hyperloops across America.  Or geothermal power plants ... or other awesome stuff.  But I can't do any of those things being balanced.  Being balanced means you have to be mediocre at a lot of things.  I just want to do enough exercise to keep my mood up.  But no more really than that.  And nothing that takes a lot of time.  Tonight I could've programmed a Perl script but I didn't because I told myself I would work out.  Now I haven't worked out nor I have programmed.  Loss day.  Sucks.  I could've been well ahead of the game today.  Instead I'm sitting here typing about being ahead of the game.  Not cool.

I want to finish this iPhone app.  V1.  Get it out.  And then build the website.

Get the site all gussied up and then bring it to this VC I know and beta it out.  Maybe add some more functionality into it (probably as it will allow me to get familiar with pushing changes), and then demo day it and beta it out.  But first I have to get this PERL script done.  Balance is not all it's cracked up to be.

Wednesday, October 16, 2013

Want to get something out there

I just want to get something out there.  I just want to get something done.  I'm working on getting this DoorToDoor DryCleaning app out there and I just want to get it and the website done. 

The app is about 30% done and I started it Friday.  Tomorrow the app should be 50% done.  Then this weekend I'll try to get the other half done.  Then come Monday I'll need to take a day at the Harlem Garage to test the fax capabilities.   Maybe Wednesday.

Then all of next week I'd really like to build the website out and get somebody from some foreign country to build some CSS and some buttons for me to make this thing look presentable.  Then I think I'll be done and ready to beta.  I'm going to shoot for a week and a half.  

Also I'll have to figure out a vendor to run credit card transactions.  Ahhh.  We'll see what I can do.  I might have to build in some more functionality before I can beta it but I'll bring it to this venture capital guy that I know and see if he likes it first.  But I'm hoping to get it all done and ready to beta by the first week of November.  But we'll see.

Tuesday, October 15, 2013

URL Conversion Site

URL Conversion Site

http://www.albionresearch.com/misc/urlencode.php

Google Maps JSON API

https://developers.google.com/maps/documentation/geocoding/

Saturday, October 12, 2013

Last Stopped

Note to self:  Stopped at Login Button's .h (header) file.

Note to self:  Stopped at the PickUpViewController.  It has to be wired to Deliver To/PickUpFrom View Controllers.  Then those have to be wired to the Payment Method which is all ready wired.

Note to self:  Run Perl Script (RESTful Script for Address Verification).  After that look up the values returned from the JSON object.  Then store them in the Core Data Object.  Wash, rinse, and repeat for the work address VC.  Also, add a first and Last name field to the Login Information VC.  Then wire it.  Script name: testConfirmedAddressObject.pl?LA=XXX&MA=XXX&ES=1

Note to self:  Next, test all of the enrollment screens.  As I'm testing build the PERL scripts on the localhost.  Switch URLs to work with the localHost.  Nice, baby, nice.  

Next up:  Build an ability that if an unconfirmed customer is in the system ("Doppelgänger alert") then give them an option to delete this user.  Otherwise if the customer has been confirmed then send an email to the confirmed address to change the password (via an email screen) or to have the confirmation code resent to the cell phone number on file.  Tomorrow just build the alerts that allow this functionality.  You can build the HTML screens and the PERL scripts later.

Next up:  Build the confirmation code PERL script and then build the other half of the app.

Next Up:  Build PERL orders for drop off button and build Table View Controller for drop off (orders all ready in the system).  Also, get the price list of five local dry cleaners and their fax numbers and input them into the database.  Then build out an orderViewController that adds order information.  Also, build the PERL script that sends the orders to the Dry Cleaner selected.  

Next Up:  Recap:

1.  Build an Order View Controller Confirmation Screen.

2.  Build the RESTful script that does the following:

-a. Build the .pl script.

a.  Inputs all the appropriate data into the database for the order

b.  Produces the Text file

c.  Faxes the order

http://www.interfax.net/en/dev/webservice/samples/fax_perl_sendcharfax

http://stackoverflow.com/questions/12312673/how-to-perl-script-to-move-files-with-specific-extension-from-one-folder-to-anot

3.  Build Credit Card processing piece into the ViewController

4.  Build the Nav Bar at the bottom of the screen to allow for account editing, checking on orders, logging out.

-- Account:

-- Allows you to change any address

-- Change password information
a.  Build tblTempPassword (password, timestamp, customerID, verified)
b.  Build PERL script
-- i.  build input script 
-- ii. build object script -- build input data into tblTempPassword
-- iii.  build object script -- build send email procedure
-- iv.  build object script -- if the data was input into the tblTempPassword and the email was successfully sent return JSON object.
-- v.  build email verify input script
-- vi.  build email verify object script -- mark the item in tblTempPassword verified.
-- vii.  build email verify object script -- get the password from tblTempPassword and update the tblCustomers with the new password.
-- viii.  Tell the user the password has been changed
-- viv.  test.

-- Change credit card information

-- Current Orders
-- Allows you to see all of your current orders

-- Log Out

-- Allows you to log out


-- Place order:
-- Allows you to place a pick up or a drop off.

Final Punch List:

1.  Add icons to Navigation Bar
2.  Add order details insert statement to Order Functionality
// a.  three needs:  orderID (check), vendoritempriceid, quantity (check)
// b.  to get vendoritempriceid:
// -- first get item id
// -- get vendor item price id (can do this with a sql statement)
// sql: select vendoritempriceid from tblvendoritemprices where vendorID = $vendorID and itemID = (select itemID from tblitems where itemName = $itemName);
// -- run this SQL statement for each item where the quantity is not equal to zero
// -- retrieve the orderdetailsid
// -- if the orderdetailsid <> 0 and not isnull then 
//    -- store the orderdetailsid in an array and move onto the next item
//   else otherwise delete all of the table entries in tblorderdetails
//    -- if none of the orderdetailsid  == 0 then return 1 to the original item
3.  Add better fax printing mechanism
-- Make sure to add checking for "Home" and "Work" buttons to make sure a home and work address each exist
4.  Check on boundary code for dry cleaners  (dtdPointBoundaryObject.pm)
5.  Add credit card charging mechanism
5b.  Make sure order drop off button has correct functionality
Tomorrow at work work 1/21/2014:
1. Write up Home and Work code
2. Credit Card Charging Mechanism  
3. Check boundary checking code
-- Add a coordinate order column
-- Add the last coordinate that's identical to the first coordinate
-- Retry the code.
Finish all of the credit card charging mechanism.  DONE!!!!

http://www.go-for-me.com/test/testdtdPointBoundaryObject.pl?cid=816&homeAddress=1&workAddress=0&vid=791

3b.  xMake sure the home address and work address pages (Account Information) insert an address if there is no address to be updated.
3c.  Add deliveryDateView Controller
3d.  Make sure the drop off button works and the order selection button.
3e.  Implement the boundary code into the VendorViewController after testing it out.
4. Build first page of website

Tomorrow at Home: Work: 
1. Debug Home and Work Code
    -- Migrate dtdVerifyAddressExists.pl
    -- Migrate dtdVerifyAddressExists.pm
2. Debug Credit Card Charging Mechanism
3. Check on Drop off button functionality
-- Build confirm pickup capability
-- a.  Build six number string to confirm order
-- b.  Put six number string into the order table (confirmation id, order id, confirmation number, order confirmed, time input )
-- create pickupconfirmation table
-- c.  Put the twilio number and the confirmation number at the bottom of the order sheet
-- d.  Build the Webhook: 
--      i.  retrieve the body of the message
--      ii. take the message and use it to look up the confirmation number



#Things to fix
# 1.  Make sure we're picking up the latest confirmation number
# 2.  Make sure we're marking the orderID in the tblorders table as order picked up
# 3.  Pick up the order number from the tblconfirmationcode
# 4.  Use the order number to pick up the customerCellPhoneNumber
# 5.  Use the from number to send the vendor a text message
--      iii.  if the confirmation number matches mark it as order confirmed & send a message to the customer that the order has been confirmed & send a message to the vendor that the pick up has been confirmed.  Mark the order id as order picked up.
--      iv.  if the confirmation number doesn't match send a message to the vendor that the pick up has not been confirmed.  Send an email to us about lack of confirmation -- Call the vendor.  
--    v.  Email the customer the receipt if the order has been sent.
-- Fix the date issue in dtdPlaceOrder.pm

4. Improve order drop off functionality
        // NEXT STEP:  Build a Restful script to find out if this job has been paid for
        // NEXT STEP:  If the order hasn't been paid for then push the paymentViewController
        //              -- after that push the final confirmation view controller with the payment method
        //                 attached.
        // NEXT STEP:  If the order has been paid for push the finalConfirmationViewController

(TONIGHTS GOAL)

        // NEXT STEP:  Modify the final Confirmation View Controller Script to take care of delivery part
                       -- Build a fax
                       -- Send a fax to the dry cleaner
                         (FUTURE FIX:  THE FILE MOVE SUCCESSFUL PART OF THIS SCRIPT IS NOT WORKING PROPERLY.  I CAN BUILD A SWEEP SCRIPT IN THE FUTURE THAT MOVES ALL SUCH FILES INTO DIRECTORIES.)
                       -- Modify the Twilio script to confirm delivery
                       -- Text the customer and the user when the drop off is confirmed
                       -- Email the customer the final receipt.

        NOTE:  When building Twilio script for drop off make sure to update tblOrders (actualDeliveryDate, orderDroppedOff)

        Today:  Make sure the credit piece works on the FinalConfirmationViewController
                     -- Make sure it fails gracefully with a bad credit card number (TEST IN LAST STEP)
                     -- Make sure it succeeds with a good credit card number (TEST IN LAST STEP)
         
        Delivery Test Cases:
                     -- TESTED:  Works with cash (unpaid in the DB and then gets paid in cash)
                     -- TESTED:  Works with credit (paid in the DB and then marked as paid with credit in the model)
                     -- YET TO BE TESTED:  Works with credit (unpaid in the DB and then gets paid in credit)
                     -- YET TO BE TESTED:  Works with cash (paid in the DB and then gets marked in the model)
                 
        // NEXT STEP:  When picking a home or work address to have a delivery dropped off to there must be code that makes sure the address coords are within the delivery area of the vendor  New Coords:  (40.786421, -73.975496)

          -- Check the coordinate code in the UA call.
          -- Check the current (inner) coords.
          -- Check the new (outer) coords.
          -- Fix the code if necessary
     
      // OTHER FIXES:
         -- Get the UITableViewCell to look correct
         -- Display the total price correctly
         -- Change the prices of the items to get decimal places
         -- Get whether the vendor is open or closed to display
         -- Get where the item was picked up from to display
         -- Get the images to show in the uitabview
         -- Change date formatting in the UIAlertViews (check the View Controllers)
     
       // Migrate to AWS:
          -- Create a github account
          -- Back up app to github
          -- Fix the credit card charge for new customers problem  
               --  First: tell the user they have no credit card on file.  Action: Do you want to enter a credit card?   No -- disappear.  Yes -- push the credit card view controller.  
          -- Fix the problem with the Final View Controller on the pickup function
          -- If someone says they don't want to use the credit card with the number on it then ask them if they want to change their credit card number.  If they say yes push the credit card view controller.
          -- When a credit card number is edited add the value back to the orderInfo object in the view controller if it exists.
          -- Don't allow the user to select an order where the order delivery date is in the future.**
              -- Instead of disallowing the ask send an alert update that says "You requested this to be done on <THE DATE>.  This is an early request and your order probably isn't ready yet.  Do you still want to request the order?"  <TODAY>
          -- Add a customer ID on the pList so that the log in password has to be equal to the customer ID. If not, erase all the data there and let them input new info.
          -- On the registration page implement a spinner for waiting <TODAY>
          -- Confirm in code that updating info in pList occurs <TH>
          -- Get rid of the warnings on each controller one-by-one.  <TH>
          -- Make expiration date view controller have proper formatting (with automatic slash input) <TH>  (NICE TO HAVE ... COME BACK LATER)
          -- Fix submit buttton <TODAY>
          -- Correctly check for null values on every view controllers code <TH> (STOPPED HERE -- FOR CODE CONTINUITY ... frankly mass changes scare me.)
          -- App Back up on GitHub <FRI>
          -- CGI Back up on GitHub <FRI>
          -- Create a new app for aws migration <FRI>
          -- Set up AWS instance
         -- Move the DB to AWS <TODAY>
          -- Move the Libraries to AWS <TODAY>
          -- Get test AWS Script to work <TODAY>
          -- Modify CGI scripts for AWS <TODAY>
          -- Build a little website for DTDDC <TODAY>
          -- Move CGI scripts to AWS <TODAY>
          -- Back up new app to github <FRI>
          -- Retest end to end everything <MON>
          -- Take video and send to demo day people <MON>

Business Goals Week of 5/26/2014:

-- Bring Oskar on board
-- Show Todd Layne the new model.  Iterate again.
-- Bring on Sartorius Cleaners.
-- Build Little Big Horn Strategy.

       
BUSINESS TASKS:
-- Order Business Cards
-- Put together pitch deck
-- Get 10 vendors to sign up
    -- Take sales meeting (5/1/2014)
    -- Do follow up calls (1 pm) (5/1/2014)
    -- Book follow up meeting with TC Cleaners (5/1/2014)
    -- Set up sales call list for Saturday (40 vendors) (5/1/2014)
    -- Book five sales meetings for next week (5/1/2014)
-- Get 10 vendors!
    -- Book 3 appointments (3 pm)
    -- Get Khalid and Amos to come make calls (3 pm)
    -- Call Mark Verdejo
    First:
    -- Call dry cleaner and book appointment
    -- Put together this weeks appointment calendar
    -- Call a Spanish caller tonight

-- Get 100 customers moving forward
    -- Come up with prelim marketing plan (5/1/2014)
-- CALL INTERVIEWEES -- set up interviews

TECHNICAL TASKS:
-- GOAL FOR THIS WEEK (Saturday) -- Send app to the app store (TODAY)
-- Test the new app (5/1/2014)
-- Get website up
-- Set up Force Update CGI script and functionality
-- Enable faxing (Test again later) (5/1/2014)
-- Retest everything end to end (5/1/2014)
-- Build out full register piece of DTDCS (5/1/2014)
    -- HomeAddresssViewController
    -- WorkAddressViewController
    -- LoginInfoViewController
    -- Work through next three view controllers
         -- LoginViewController
         -- ConfirmationCodeViewController
         -- DeliverToViewController
         -- VendorsViewController
             -- Troubleshoot VendorViewController
         -- Build itemViewController & sandwichViewController
             -- Build tblItemType
             -- Add itemType to indivVendorItem
             -- Place itemType from DB (Perl script) into indivVendorItem
             -- Get correct view controller to load for each tableViewController
             -- Get itemAdd to work for indivItemViewController
                  -- Get the indivItemVC to look proper
                  -- Get the indivItemVC to load the proper information
                  -- Get the UIStepper to behave properly
                  -- Get addToOrder button to load (build UIAlertView that lets everyone know what the item add costs).  -- STOPPPED HERE ... SEE itemViewController.
                   --  Get addToOrder button to work and pop view controller to last VC
             -- Get tableView choices to load for sandwichViewController
                   -- Build tables for tblVendorSandwich
                   -- Add special instructions section for sandwichViewController
                   -- Add UIScrollbar to View Controller
                   -- Get tableViewControllers to load with the proper information
                   -- Get tableViewControllers to work with checkmark for chosen boxes
                 
                   D2D DRYCLEANING WORK:
                   -- Get bullet points to show
                   -- Get address description
                   -- Get pictures
                   -- Get item tableview to show
                   -- Build out item specialization (multiple tableviews)
                   -- Rebuild order CGI script

                     D2D DRYCLEANING WORK:
                     -- Update the updateOrderDB module in FinalOrderConfirmationViewController
                     -- Change the updateOrder Perl Module to be more flexible
                     -- Change placeOrder module in order to get the special instructions in the DB
                     -- Change the placeOrder createDocumentModule to take specialOrders


                  D2D CORNER STORE WORK:
-- Get Credit Button to work correctly
   -- Work through Credit Button (Go through the code)
-- Get Cash Button to work correctly
   -- Work through Cash Button (Go through the code)
-- Work through FinalConfirmationViewController
   -- Go through the Code
   -- Add special instructions controller
   -- Check out the submit button
   -- Change the http scripts
   -- Gut the pickup pieces of the view controller
   -- Examine the tabs and re-examine the stuff
-- Change all the HTTP Requests
-- Change all the NSStrings necessary for DTDDC to change to DTDCS
-- Get Login Button to work correctly (90 days log out)

-- LEGACY PROBLEMS:
-- Get tableViewControllers to add the price of the sandwich correctly
                   -- Get addToOrder button to work correctly
             -- Add a number of items
             -- Add Submit Button to productViewController
                 -- Add functionality that deletes all items if a different vendor is chosen from StoreTableViewController
                     -- Make sure UIAlertView tells the user beforehand.
             -- Build FinalOrderViewController
             -- Start Building FinalOrderViewController backend functionality
         -- Make tableViewController pretty