If there are any questions, please ask before bidding. If you bid, I assume you understand the project without any questions
Versions and Dependencies:
rspec 3 gem
For all development you do, must write rspec tests, targeting version 3.
Where possible, all hashes should target 1.9+ syntax, not hash-rockets.
Take data and output a PDF file based on pre-defined HTML. (This process has already been written in a different language)
You’ll create a bare Rails 4 app.
I’ll provide to you a set of test data, in the form of JSON files (3-5). You’ll create a Ruby class inside of app/models to pull this data out. (This will be a plain class where you return hard-coded data; do not create a proper data model at this time)
I’ll provide the HTML we’re currently using, with data, page breaks, etc as pseudo-code.
You’ll create a controller and route at invoice/N and invoice/[url removed, login to view] (N represents an id; you’ll be display the original HTML in the browser and the PDF, accordingly)
You’ll use the wicked_pdf gem to render the PDF. As for wkhtmlpdf configuration, assume the production environment is Ubuntu, and the development environment is OSX. If you need to configure development environment for Windows or Linux, that’s fine, but should also work on OSX as well.
Do not put all of your logic in the controller; create an InvoiceService class. Take the data in the constructor, settting instance variables. Should use attr_reader setters rather than accessing instance classes directly. Should have to_html and to_pdf methods. #to_html returns rendered HTML. #to_pdf calls to_html, and returns path to rendered PDF file.
You will be granted access into our private Github repository. You will then create a branch where you will do all your work. For review, you will submit a pull request into our development branch (during development I won’t be merging, only using the pull request to see diffs).
To test, I may pull down code and test locally. You may wish to deploy to Heroku for live testing, but it must work in my local environment.
I may test against a CI server (like CodeShip or CircleCI) and/or a static analysis tool like Code Climate. Note that that expectation is that the code will be of best practices quality, so if static analysis indicates issues, even if code functions, revision may be needed.
The rendered PDF will be expected to fit into a standard #10 business envelope with right-hand window when printed a folded using an automated tri-fold folding machine; additional work may be needed for proper formatting. (our current solution does this, so the provided HTML should work)
Pull request that can be merged.
I am a professional developer, and this is an outsourced project. Please approach this project accordingly.
If the working relationship is good, there will definitely be follow-up work to this.