We're looking for a talented web developer to build a simple webapp that provides a multi-page form used to make a simple financial calculation. It's a student budget calculator (simple arithmetic & some boolean logic).
We're looking to build a close clone of this form :
[[login to view URL]] with a few enhancements and additional fields.
Read the full specs document here:
[[login to view URL]]
And here's the wireframe:
[[login to view URL]]
Technologies we'd like to work with, in no particular order: any Ruby/Python/PHP framework.
Please don't send any long list of projects, but a small selection instead, if you want. We'd much rather see a link to a StackOverflow profile or your personal blog. In fact, the shorter and more to the point your application, showing that you understand what we're looking for, the more likely that we'd want to work with you! Also, please begin our bids with the word "CleanCode" to help us filter out the spammers. Thanks!
Please begin your message with the technology you'd use and a link to a link to a Stackoverflow profile, or Github page, or any app you've worked on that illustrates your skills.
We're developers like you, we're nice and easy to work with :). During the entirety of the project, we'll be available on Skype & GChat during business hours, (9 AM - 7 PM CET).
Looking forward to hearing from you!
The aim of this project is build a tool that helps future or existing college students calculate their budget needs for the current or upcoming school year. The tool consists of a form that users fill in with the final output of a number, in euros, which is the result of the calculation.
An example of a tool that has the same aim is [[login to view URL]]. However, we're looking for something that is actually enjoyable to use, and of great quality.
Around this core feature, other functionality is provided, as described below.
* responsive UI, updating data asynchronously
* simple, user-friendly form design, strong attention to form design best practices
* graceful degradation to allow usage with JS disabled
* internationalization using plain text files, nothing should be hardcoded in English
* hosting on a PaaS is preferred, but not mandatory if there is good reason (eg. some useful library unavailable)
* The calculation is the result of a sum of sub-calculations
* most are simple arithmetic
* users input the values in different scales (sometimes in ?/month, other times in ?/year, etc.), therefore all values should be normalized to ?/year)
* some values are ranges (eg. : 100-200), so the calculation needs to keep track of two results, a minimum and a maximum
* There are two special cases of calculations
* "Studies > Higher education scholarship":[login to view URL] is the same calculation that's done in "the form available here":[login to view URL] It is based on a simple formula available in the reference documents, with cross-matching with "the attached table":[login to view URL]
* "Housing" > "A.P.L." is the form available here: [[login to view URL]]. Unfortunately, the formula for the form is unkown. Two options seem to present themselves:
* * scrape the form fields & drive the form remotely (challenging, preferred)
* pop-up a window asking the users to fill the form there and copy-paste the value (bad usability)
* some fields are repeated in the reference documents, as identified by the "name in app" row: if the user has filled them once at some point in the form, they should not be presented again
* boolean logic links some fields at different places in the form, even in between different sections, this is described on each individual sheet in the "Rules" section
* no fields are required, except fields related to account creation
* some fields and events are tied to hints (blocks of information that are triggered when a certain condition has been met). The functionality should be implemented for some sample conditions, so that it's easy to add other ones later
* one field that should work with autocomplete needs its data to be gathered by scraping from "this official list":[login to view URL]
* it's a list of French high schools, grouped by town
* important fields are the administrative division code (eg. first line, "04"), the high school name and the town name ("commune" in French)
* the "administrative division" field should be populated by a list of French administrative division and their correspondances with "regions" is available here, in Excel format: <[login to view URL]> (all the data should be saved in the DB, as it is needed throughout the form)
* only one admin user
* admin section serves strictly for the functionality described below
* allows managing of nearly all form data (some data is hardcoded, and presented as such in the reference documents)
* each individual calculation is displayed as a table, the admin user can input values for each column, both as criteria and as results
* simple Excel/CSV dump of data as a multi-page spreadsheet, with each page corresponding to one of the form's sections
* user accounts
* entire form session can be saved at form submission, and linked to a member account, created on-the-fly (either user authenticates with Facebook/Google oAuth, or provides email address, email is sent with private link, user can then choose password)
* user can "save" the form state by creating an account, at any point in the form filling process
* user can resume previous form filling session or choose to start a new one, two options are possible
* old form filling session is discarded
* old form filling session remains available as a "version", much like documents in Basecamp
* users can recover forgotten passwords
* users can convert their oAuth acount to a normal user/password pair (and vice-versa)
* when user logs in, he/she is taken to the last form step used before logout, with all the data already filled in preloaded
* user data export
* user can download a PDF version of the recap of the form (his form data + the result), or receive it in HTML by email. Receiving by email is only allowed bundled with an account creation.
**Optional (out of scope) features**
* convert the app to a mobile app using a framework like Phonegap
The fields are fully documented in spreadsheets, by category:
1. Studies: [login to view URL]
2. Housing: [login to view URL]
3. Common expenses: [login to view URL]
4. Work: [login to view URL]
5. Miscellaneous: [login to view URL]