InventiStudio Front-end recruitment task
Hello Stranger!
Since you got here, you're probably taking a part in our recruitment process for Front-end developer position, right? We're super happy to hear that! Getting right to it — the main purpose of this task it to check out your HTML, CSS and JavaScript skills. We'd like to get to know your aproach of solving the following problems:
- Implement functionalities for the User stories (first one is already done),
- use Vuejs UI library with it's related ecosystem parts like Vuex and Vue-Router,
- provide the best possible User Experience (being strict with the designs, responsiveness, hover/focus states of interactive elements — everything to your liking and ideas),
- write a code that follows project's guidelines (e.g linters).
Feel free to open an issue if you got any questions or sugestions! Once it's ready, send us a repository link at hello@inventi.studio!
Happy coding and cheers,
Kamil & Piotrek, InventiStudio
- As a guest I am able to sign in.
- As a user I am able to sign out.
- As a user I am able to see all my transactions.
- As a user I am able to see all my withdrawals (transactions where I took money out of my wallet).
- As a user I am able to see all my additions (transactions where I added money to my wallet).
- As a user I am able to see wallet summary.
At /design
directory you can find previews of User Interface, design guidelines and all the required assets.
API Url: http://217.182.66.13:4000/
E-mail: john.doe@mail.com
Password: password
Endpoints:
Get all transactions.
GET /transactions
Name | Type | Description |
---|---|---|
x-auth-token | uuid | Session's token. |
Name | Type | Description |
---|---|---|
transaction | Object[] | List of transactions. |
transaction.name | String | Transaction's name. |
transaction.amount | Number | Amount of money withdrawn/added. |
Validate token.
GET /sessions/:token
Name | Type | Description |
---|---|---|
token | uuid | Session's token. |
Name | Type | Description |
---|---|---|
session | Object | - |
session.expiresAt | Date | Date of session's expiry. |
Create new session.
POST /sessions/
Name | Type | Description |
---|---|---|
session | Object | - |
session.id | uuid | Session's token. |
Destroy session.
DELETE /sessions/:token
Name | Type | Description |
---|---|---|
- | - | - |
# Clone repo and install deps
yarn
# Run dev server with hot reload at localhost:8080
yarn dev
# Run sass-lint
yarn lint:sass
# Run ESlint
yarn lint:es
# Run all linters
yarn lint
# Run Unit tests
yarn test:unit
# Run e2e tests
yarn test:e2e
# Build for production with minification
yarn build
# Build for production and view the bundle analyzer report
yarn build --report
# Run production server
yarn start
For a detailed explanation on how things work, check out the guide and docs for vue-loader.
It's just a recruitment task, we won't use it in any commercial way!