Note: This task should take no longer than 1-2 hours at the most to complete.
-
Please note that this will require basic Ruby on Rails, Agular and RSpec knowledge.
-
You will need to have Ruby on Rails and Agular installed to complete this task.
- Fork this repository
- Create a source directory.
- In the source directory, scaffold a simple Rails 4 web app that models a user and credit card charge. JSON data structure below:
{
"id": 56165,
"created": 1389618241,
"paid": true,
"amount": 4900,
"currency": "usd",
"refunded": false,
"customer_id": 123,
"disputed" : false
}
*Note: Amount is in USD, cents*
- Also scaffold a user object which has a first, last name, and email.
The charge object has a customer property, this property is the customer id from the customer model.
Customer 1:
First Name: Billy
Last Name: Ocean
Email: [email protected]
Password: test1234
Customer 2:
First Name: Chris
Last Name: Hughes
Email: [email protected]
Password: test1234
Customer 3:
First Name: Billy
Last Name: Walsh
Email: [email protected]
Password: test1234
Customer 4:
First Name: Ryan
Last Name: Smith
Email: [email protected]
Password: test1234
10 Should be successful transactions:
- 5 Should be linked to Customer 1
- 3 Should be linked to Customer 2
- 1 Should be linked to Customer 3
- 1 Should be linked to Customer 4
5 Should be transactions that failed:
- 3 Should be linked to Customer 3
- 2 Should be linked to Customer 4
5 should be disputed:
- 3 should be linked to Customer 1
- 2 should be linked to customer 2
Customers may view only their own transaction, except for Customer #1, who should be able to view all transactions from any user. All users must have a valid email address. Please pay attention to security, authorization and access.
Do not use default Rails routes or controllers.
On the view that shows all charges (most likely the GET /charges route), create three lists with H1 headers.
-
List 1 -
- Header: Failed Charges
- In this list set the background color of the rows to #FF0000 and list the Customers full name, the charge amount and the date that the charge failed for each failed charge.
-
List 2 -
- Header: Disputed Charges
- In this list set the background color of the rows to ##FF5400 and list the Customers full name, sorted in reverse alphabetical order (from last name), the charge amount and the date that the charge was disputed for each disputed charge.
-
List 3 -
- Header: Successful Charges
- In this list simply display all the charges that were successful.
Create the following RSpec tests:
- Verify that there are three lists on the screen. One for successful charges, one for failed charges and one for the disputed charges.
- Verify that in the Successful charges list there are 10 line items. Verify that in the failed charges list there are 5 failed charges. Verify that in the disputed charges list there are failed charges.
- Commit and Push your code to your new repository
- Send us a pull request, we will review your code and get back to you
- Clean, readable code, using best practices and naming conventions
- Solid understanding of Rails using Angular
- Attention to detail