Skip to content

Commit e87ee5b

Browse files
Merge pull request #6 from pennylane-hq/ar/update-readme
chore: update the instructions to make sure candidates have what they need
2 parents 4b0fb93 + 650020d commit e87ee5b

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

README.md

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
# Jean Test Mobile
22

3-
JeanTest is a React Native invoicing mobile application. It is used by business owners to create & manage invoices with their customers.
3+
JeanTest is a React Native invoicing mobile application. It is used by business owners to create and manage invoices with their customers.
44

55
This repository contains the skeleton of JeanTest & instructions for this React Native hiring test.
66

77
## Mission
88

99
Your goal is to build a feature-rich prototype of JeanTest that allows to:
1010

11-
- List & quickly find invoices
12-
- Create new invoices
13-
- Manage existing invoices
11+
- **List & quickly find invoices**
12+
- **Create new invoices**
13+
- **Manage existing invoices**
1414
- Move them from drafts to finalized invoices
1515
- Mark them as paid
1616
- Update them
1717
- Delete them
1818

19-
You'll be leveraging an existing REST HTTP API hosted at `https://jean-test-api.herokuapp.com/`.
19+
For this, you'll be leveraging an existing REST HTTP API hosted at `https://jean-test-api.herokuapp.com/`.
2020

21-
The API is documented with [OpenAPI](https://www.openapis.org/) & has a documentation available [here](https://jean-test-api.herokuapp.com/api-docs/index.html). Each API call must be authenticated using a `X-SESSION` header with the provided token.
21+
The API is documented with [OpenAPI](https://www.openapis.org/) and has documentation available [here](https://jean-test-api.herokuapp.com/api-docs/index.html). Each API call must be authenticated using an `X-SESSION` header with the provided token.
2222

2323
### What's expected
2424

25-
JeanTest should contain essential features listed above & be coded in a way that makes it intuitive, performant & maintainable.
25+
Your exercise submission should:
2626

27-
We expect you to adopt standard coding practices, including testing, as if you were working on a real-world application with other coworkers.
28-
29-
We want you to **build JeanTest from existing UI components provided in `src/ui`** by [Tamagui](https://tamagui.dev/ui/intro?subpath=intro) in order to focus on composing screens & features. Feel free to add new ones but keep in mind that it won't be taken into account.
30-
31-
We encourage you to use pre-installed dependencies or add new ones if you have a legitimate use of them.
27+
- **Have the essential features** listed above while maintaining an intuitive, performant, and maintainable codebase.
28+
- **Follow the standard coding practices** and include testing, just as you would when developing a real-world application with teammates.
29+
- **Leverage existing UI components** provided in `src/ui` by Tamagui to focus on composing screens and features. While you're welcome to add a new UI library, you'll need to justify such an addition.
30+
- **Use pre-installed dependencies** or add new ones if you have a legitimate use of them.
31+
- **Create a clear README** with comprehensive instructions for setup, usage, additional features, etc.
3232

3333
### The interview
3434

35-
In order to prepare the interview, please take the time to identify advanced features that could be added in the future (even if the API currently does not support it!).
35+
To prepare the interview, please take the time to identify advanced features that could be added in the future (even if the API currently does not support it!).
3636

3737
For each feature/tech improvement, we want to understand:
3838

@@ -42,15 +42,15 @@ For each feature/tech improvement, we want to understand:
4242

4343
### Submit your application
4444

45-
In order to send your code, please create a private GitHub repository containing the source code of your application.
45+
To submit your code, create a private GitHub repository with your application's source code.
4646

47-
Invite the following GitHub users to it: `@julienpinquie` `@soyoh` `@LucaGaspa` `@greeeg`
47+
Invite the following GitHub users to it: @adrien-pennylane @keShraa @Lecsar @michaelvitello
4848

4949
## Getting started
5050

51-
In order to get started, clone this repository & run the `bin/setup` bash script which will install dependencies & take care of autogenerated files.
51+
To get started, clone this repository & run the `bin/setup` bash script which will install dependencies & take care of autogenerated files.
5252

53-
```sh
53+
```bash
5454
git clone [email protected]:pennylane-hq/jean_test_mobile.git
5555

5656
cd jean_test_mobile
@@ -62,21 +62,20 @@ yarn start
6262
yarn ios
6363
```
6464

65-
Make sure to add your `API_TOKEN` in `src/App.tsx` to send authenticated requests to the API.
65+
To start sending authenticated requests to the API, patch the `API_TOKEN` in `src/App.tsx`.
6666

6767
### Data model
6868

69-
The REST API contains 4 resources: customers, products, invoices & invoice lines.
69+
The REST API contains four resources: customers, products, invoices and invoice lines.
7070

7171
Side notes:
7272

7373
- Invoices contain multiple invoice lines.
7474
- Invoice lines are accessed via their invoice. To update them, use the relevant invoice API endpoints.
75-
- Once the `finalized` field is set to `true` for invoices, no field may be modified except for `paid`.
7675

7776
### API client
7877

79-
An API client based on `openapi-client-axios` is available through a React Context set up in `src/api/index.tsx`. The provider is mounted in `src/App.tsx` & the context can be consumed using the `useApi` hook from `src/api/index.tsx`.
78+
An API client based on `openapi-client-axios` is available through a React Context in `src/api/index.tsx`. The provider is mounted in `src/App.tsx` & the context can be consumed using the `useApi` hook from `src/api/index.tsx`.
8079

8180
```tsx
8281
const MyComponent = () => {
@@ -101,4 +100,7 @@ const MyComponent = () => {
101100

102101
return null;
103102
};
103+
104104
```
105+
106+
Good luck & Happy coding!

0 commit comments

Comments
 (0)