NOTE: This is an empty Rails 4.1 project. Please fork it, and submit a pull request. You're free to use any gems, or tools that you like to complete these tasks.
Goal: Create a customer registration form that allows a customer to register their business with some brokers.
The registration should be a 3 stage process. The 3 stages are:
- Selection of brokers
- Registration details
- Supporting documents uploads
The 3 stages are detailed more below.
The goal is to allow the customer to choose which brokers they wish to register with.
Functional requirements:
- The user should be allowed to select up to 3 brokers, but no more.
- The customer should not be able to proceed without selecting at least one broker
Design requirements:
- Present the selection of these brokers as 6 boxes
- Make the selected status (selected/not selected) visually appealing and clear to the user
The goal of the registration page is to help the user complete the form fields in a straightforward and guiding way.
Functional requirements:
- Use good judgement for validation considerations, and where to handle them (client vs server).
- The registration form needs to be dynamic, whereby it displays certain fields only in certain company types.
- Consider appropriate use of Javascript to improve the UX
The 6 types of companies and their form fields are below
- Charity
- Full name*
- Address
- Charity number
- Email address
- Limited company
- Company name*
- Registration number
- Email address
- Names of up to 4 Directors*
- Partnership
- Full name*
- Address
- Registration number
- Names of up to 4 Partners
- Public limited company
- Company name*
- Listed on exchange?
- Registration number
- Trust
- Full name*
- Address
- Names of all trustees
- Sole trader
- Full name*
- Address
Design requirements:
- The form should dynamically show the correct fields depending on the company type selected
- Only when the user has completed the minimal fields (marked with *), should the user be allowed to proceed to the next stage
While not essential, effort on making the UX good with transitions and animations, wherever relevant, would be great.
Allow the user to upload any supporting documents required for their registration.
Functional requirements:
- In this test scenario, only limited company registrants need to require supporting documents. They will need to upload 1 file:
- Proof of address
For all other company types the registration can allow the user to proceed to the next stage without being asked for a document to upload.
Once the customer has completed all 3 steps, they should see a thank you page.