GithubHelp home page GithubHelp logo

invoicerunner's Introduction

PLAN

Test plan

  • Verify loginButtons register button is not bypassing our createUser method
  • Test registration and upgrade validation
  • Test upgrade works and adds correct subscriptions in Stripe
  • Ensure user permissions work (can only edit own invoices)
  • Test full workflow from upload to archive

Roadmap

  1. Customisable email notifications (e.g. when an invoice is due in 3 days you get an email...)

  2. Financial reports

  3. Download/export archives

  4. OCR module (2nd tier of pricing plan)

  5. Email imports: get vendors to email your invoices to [email protected] to import them

  6. Generate and send invoices? (module) (highly debatable - a huge pivot?)

  7. Localization (chinese, spanish, hindi)

  8. Investigate compliance (regulatory examples): http://www.einvoicingbasics.co.uk/selecting-einvoicing/selecting-einvoicing-solutions/

invoicerunner's People

Contributors

davedx avatar alinutzab avatar daclayton avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

invoicerunner's Issues

Add support page

Like the other static pages (terms & conditions, etc.).

Link: just before the 'cancel account' in the footer.

Support

For all support enquiries:

Add validation on register form (email) and upgrade account form

Add a basic loose email address validation on the free trial signup form. It should only verify there is an @ symbol and a . symbol in the email address (in that order). You can find regular expressions to do this on the Internet.

Add validation on upgrade account form (from the "Open full account" button when signed in): it should verify the following fields are present: Company name, Address, CC. number, expiry date, name on card. (Tax number can be empty so we can support non-business accounts).

Add terms & conds checkbox to demo signup

The signup form should have a checkbox saying: "I agree to the Terms & Conditions". Terms & Conditions should link to the T&C page (the "termsandconditions" route in router.js).

Implement 'quick view' of invoices using an iframe

At the moment, it is difficult to easily see the imported documents for invoices from within the app. Our user feedback suggests we should build an invoice 'quick viewer' so that users can see their invoices alongside the data they have entered, or use it as a reference when they first enter the data.

In the 'invoices' template in 'invoices.html' there is a 'Open invoice' button for each invoice in the list. This button currently is a simple hyperlink to the invoice document stored in Amazon S3. We should implement a second button to the right of the 'Open invoice' button called 'View invoice'.

Clicking 'View invoice' should do two things:

  1. Show a hidden iframe that is positioned over the right hand side of the page (so around 50% page width) and is approximately the same height as the page.
  2. Load the iframe's src with the invoice document's URL. (See the 'Open invoice' button for how to get the URL).

See http://stackoverflow.com/questions/6000987/dynamically-set-iframe-src for how to do this. The hidden iframe should be somewhere at the top of the template, e.g. just after the 'payment_modal'.

Finally, there should be an easy way to close the iframe when the user has finished using it. Implement a small button (you can see examples of a button with a 'X' in it in the Bootstrap reference) that closes (hides) the iframe.

Fix styling issues

Clean up any style issues throughout the project, for example top/right margins on home page. Ensure it looks correct in responsive (smartphone & tablet) views.

"Your invoice has been uploaded" seems to show/hide alternately when working on invoice

There seems to be a small issue with the popover that says "Your invoice has been uploaded..." on the main invoices screen (displayed just after you upload and decide to edit what you've uploaded). If you click repeatedly in e.g. the invoice number input, it will alternately show and hide itself.

I'm not sure what's causing this. It's low priority, but if we could get it to just go away permanently when they start doing anything, that would be great.

Add feedback when user successfully adds credit card and upgrades account

Add feedback when user successfully adds credit card and upgrades account. This should be a Bootstrap modal, then a redirect when the user clicks a "OK" button, instead of just the redirect.

The code probably needs to go in accounts-controller.js, in the new_account_stripe.events block.

It would be nice to clean this code up a bit too: please remove all references to Paymill and all conditional checks for whether Paymill or Stripe should be used; we are using Stripe and don't need the Paymill fallback.

Replace default values in new invoice with placeholders

New invoices should have sensible defaults when they're created. (Server side logic, in model.js createInvoice).

Most of these now look OK, except the date.

Please change the default date to today's date. (Check this loads properly in the date picker)

Rebrand ink file picker

We should try to change the heading from "Ink File Picker" to "Invoice File Uploader" if possible. If we need to upgrade out account let's not bother yet (or hack it with JS)

Fix invoice styling in mobile

Invoice inputs (company, subtotal, tax, total, PO number) are too wide for mobile (Nexus 4). Also the popover falls off the right side of the screen. It would be nice to make this a popover that appears over the invoice till dismissed by the user in mobile mode, if that's possible. Otherwise, hide it in mobile.

Validation seems broken

validateNewAccount in accounts-controller.js was crashing when it tried to split the class attribute. Maybe I broke it somehow with what I've been working on.

I've disabled the validation for now.

I think given there's only two fields to validate here let's just check them both client-side, and do it explicitly (add a handler on each element's blur that needs a validator).

Unable to delete 0 of "invoice number" field in mobile

For some reason I couldn't delete the default "0" in the invoice number field of an invoice when in mobile (immediately after adding a new invoice and trying to edit it). Eventually I entered 012345, hit save, then edited it again - this time I could delete all the digits including the 0. Really weird. Possibly a blur validator?

Marketing tasks

  • Identify target segment and find companies, noting approx. company size contact info
    • SMB's (small and medium businesses)
    • Large volumes of incoming (payable) invoices (retail, ...?)
  • Write copy for email to send to small companies: identify USP's and how we solve pain points in invoice processing (ref: http://blog.bidsketch.com/sales/cold-email/)
  • Further tweak landing page copy to focus on smartphone import; ease of use (least clicks to perform actions); security (SSL, ...?)
  • Create Twitter account; fully customize and brand it
  • Add website to Chrome App Store (Productivity category?)
  • What else?

Improve feedback after invoice upload

After an invoice is uploaded, the user is shown a simple confirm dialog asking if they want to upload another or not. To improve the user experience, we should:

  1. Convert this confirm dialog to a Bootstrap dialog and expand the text to:

"Your invoice has been successfully uploaded. Do you want to finish entering the data for this invoice, or upload another invoice?

[Edit invoice] [Upload another invoice]"

  1. When the user clicks "Edit invoice", the app should take them to the invoice they have just uploaded. We need to go to the invoices page AND then scroll to that invoice. Maybe this is possible using a URL hash (e.g. go to /invoices/#invoice-30), but that might not be compatible with how iron-router works. We should investigate the options here.
  2. When the app has scrolled the user to the invoice they uploaded, we should show a Bootstrap popover to the right of the invoice (so pointing to the left) with the following text: "Your invoice has been successfully uploaded. Finish entering the data for this invoice so you can track the date it is due, the purchase order number, and the amounts payable."

http://getbootstrap.com/javascript/#popovers

Add purchase order number field

Invoices should have an optional field for purchase order numbers.

Label: "PO number:"
Input: Same as the invoice number

There should be no validation on this field, and it should be saved to the model as "po_number".

There seems to be an existing field I added earlier called "pa_number". This should be removed wherever it exists and replaced by "po_number".

Marketing email: A

Subject: Invoice Management app

Dear ,

Do you sometimes have trouble keeping track of your company's paper and electronic invoices?

Our company did too, so we built a simple, easy-to-use application that runs on our phones and our laptop. We wanted to import any invoices we received into this system with our smartphones, without needing to use a scanner, and track what was due to be paid and what we'd scheduled payment for already.

We ended up building something that we think you'd be interested in too. Our application, "Invoice Runner", takes the pain out of managing invoices:

  • Get paper invoices into the system with your smartphone camera without needing to use a scanner
  • Easily import electronic invoices from anywhere, as any kind of file type
  • Manage, view and track due dates of your invoices
  • Record when payment has been scheduled

You can try out Invoice Runner for free with a no obligations trial account, and add up to five invoices to see how our application can help organize your invoices. You can upgrade to a full account at any time, for a subscription of $19 per month.

https://invoicerunner.com/

Kind regards,

Dave Clayton
Founder, Invoice Runner

Enable editing of user's name and address

Users should be able to edit their name and address information.

To support this, we will need to add a new menu item to the accounts-ui dropdown on the right hand side called "Edit account".

This should take the user to a simple form like the "Upgrade account" page, that allows them to only change:

Company name, Address, VAT number.

I'm not sure how to do this, as it's part of the Meteor accounts-ui package.

Improve landing page

  • Find & add an appropriate stock photo for the landing page
  • Rework copy to describe intro as a user story (invoice runner solved my problems because .....)

Build static account cancellation page

Keep it simple: just a static HTML page explaining how to cancel an account with a contact email address.

Link it from the footer with the anchor text "Cancel account".

Copy:

Canceling my account

If you would like to cancel your account, we'll be so sorry to see you go! Canceling takes effect immediately โ€“ you won't be charged again, and your account will be inaccessible. All of your invoices will be deleted permanently.

Please send an email to [email protected] from the email address of the account you would like to cancel, and we will process your request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.