Monday, December 18, 2006

Deployment and Employment

Been following a wonderfully detailed series of posts about deploying using nginx/mongrel on Debian and have decided that this is the route I'd like to take. I want to get all of this done in the period between Xmas and NY so as to be ready for Wittenbeck in the new year (complete with upload progress).

I also want to look into using Google Checkout (GC) for payment processing as soon as it is available for merchants outside of the US. I've read a couple of posts citing the GC FAQ which implies that, although intended foremost for one-off purchases, GC can also be used for recurring payments.

Some speed improvements can be achieved by combining action caching with named routes. And BackgroundDRB can cache ActiveRecord objects.

What other hurdles lay ahead?

  • Legal Form - I'm going to start as a sole trader and move a ltd once I've got some customers.
  • Terms & Conditions - Copy/adapt from 37 Signals or Carson Systems until I can pay for a real one.
  • Copyright - Apply once the money is there.
In an ideal world, I'd start trading as a Ltd company with a T&C approved by a lawyer and all the relevant copyrights & trademarks applied and paid for. But I know this will just delay everything even more and I'm getting impatient.

Tuesday, September 26, 2006

The last push continues

Still pushing! I've been a bit frustrated and anxious about the site for the last month and I decided to try and nail down why and what to do about it. The thing main thing on my mind was the variable width of the site due to the need to represent project partners as columns. The more partners a project has, the more columns need to be shown. And each column required a sub-query to display it's data. I was worried that large projects with many partners would suffer performance problems as well as display problems (width would exceed visible width of some monitors), but the very idea for the site came from the desire to simplify the management of large projects.

The new layout is without partner columns. Once a document is downloaded or received from the printers, it's version is added/updated in the dispatch table and if not already present, the document is added to a partners watchlist. A watchlist entry contains the documents id along with the versions_count value from when it was last updated. If a new version is added to a document being 'watched' the discrepancy betwen the watchlist row's count and the documents count show up and this is drawn to the attention of the partner. Make sense?

File uploads/downloads working, although without progress bar. Payment processing put back until it becomes a problem (i.e. until I have customers). Adding Print job functionality which works as follws:
select docs to print, select printshop (from partners list), select email template, select due date, send.
Job is added to partners watchlist. Once job arrives, user can check checkbox to update dispatches table.

I've decided to build this so that I can use it here at work. I want to have it up on a web server next month s I can use it on our current project and then see what functionality it still needs. You can't beat live testing. The next stage would be to roll it out on other projects and/or invite partners. And then launch!

Monday, July 03, 2006

The final push

Slight concept overhall: I'm going to use amazons's S3 to host project files. This means that the core product (version 1.0) is broadly as follows:

Account: users, addresses, settings, payment
Project: create, accept/reject invitations
Partners: llist, show, invite (and cancel invite)
Plans: List, show, add files, download files (and update dispatches table accordingly), search

That's it.

Things to add LATER (i.e. during user testing or once in production):

- Upload archive
- Incoming & Outgoing
- Previews for pdfs / image files
- Watchlists/Recommendations

Tuesday, June 06, 2006

Update

Haven't posted in ages! A summary of what's happened since the last post:

Tags


I've dropped tags. Tags are useful if they are used properly, but if plans are named in a logical manner (i.e. where the plan title gives a good indication as to what it contains) then tagging is superfluous - a text search will suffice.

So I have stuck to a contextualised text search. Text searches can be carried out for all plans in the project or for all plans supplied by a specific partner. Text search searches on title and description.

Escaping using u()


Rewriting whole thing on mac osx.

Validating ajax form for tags


N/A (see "Tags" above)

Create index page


Done.

I've gotten really far on the project. I'm in the process of transfering the whole thing to UNIX (on Mac OSX) from Windows on my lovely new Macbook. I've set up subversion (not sure if I really need it now but hopefully in the future when my site proves to be extremely successful ;)). Using three great plugins (act_as_authenticated, account_location and localization) for authorisation and translation. Using textmate (and writing everyting in utf8 instead of latin which I mistakenly used with SciTe, meaning localization strings in german wouldn't display properly).

I'm really happy with my big queries - they run far quicker than I'd hoped (approx 15- 20 a second for displaying the main overview and search results).

All in all it's looking good. However I still have a few hurdles which, in my darkest moments, make me think I'm destined to fail:

  • Payment processing
    I'm looking at paypal still but wondering whether I should go for authorize.net. The cons? Setup fee and monthly payments.

  • Company form
    I'm thinking maybe I should set up a ltd in the UK. I could maybe just register as self employed initially in the UK, and change to a ltd at a later date, but this could be problematic with subscription payments started before the transition. Also, a ltd just appears more serious. I'd need a PO Box though.

  • Legal stuff
    Need to get a Terms and Conditions and Privacy Policy drawn up, in accordance with UK/European Law.

  • Launch!
    The most difficult step. I't a real mental hurdle for me. What if it fails? what if there are bugs? What if a rival prduces a better product? Maybe I should buy Getting Real.

Thursday, April 27, 2006

Things that can go in the next version


  • Time filter - shows plan distribution at any time during the project

Monday, April 03, 2006

Still to do(strike through when completed)

  1. Separate application into info/signup and login/everything else
  2. impliment search function on plans which searches by:
    1. up to 3 tags; or
    2. by company; or
    3. by textsearch on number and name

  3. escape all data retrieved from DB (using u())

  4. validate ajax form (for e.g. tasks)
  5. create index page like so:





    partnersendersend-daterecipientreceived-date
    amjdesignA. Groves02.03.2006C. Jagusch05.03.2006

Wednesday, March 01, 2006

Planr v 2.0

... and I haven't even released 1.0 yet. Basically got in a muddle about partner accounts and the fact that a paying subscriber creates them but another subscriber can then invite them into their project and change the information. Unless the partner is the only one allowed to change their data but it smells a bit fishy if they can edit and delete but not create.

Soooo, I've come up with a new environment. Bit like Basecamp but better of course ;). Accounts are free. Account keys are created at account creation and act as subdomains (mycompany.planr.com). The admin can then add users addresses etc. Their short name pngs are also created at account creation.
Then. A project is created. Partners can be invited via their short name (and some sort of key). Invites are accepted, declined, cancelled. The admin can then add users to the project and they have access as well as being listed in the partners team list.