Frontend assessment source code
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

2 lat temu
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ## Notes
  2. - The app is deployed to test.onyeka.ca
  3. - I updated react and other packages because 16.7 was being used, and hooks are
  4. now the simplified method of managing state in react.
  5. ### TODO
  6. - Show dates on calls?
  7. - Add date seperators to calls
  8. - Sort calls by descending dates
  9. - Add missed and voicemail icons to represent status
  10. - Give call entries shine and box shadow. Maybe color them by type
  11. - Add entry transition animation
  12. - Add favicon
  13. - Seperator could be added by putting li renderer in a seperate function from
  14. Feed
  15. ## Summary
  16. The goal of this test is to make you code a small ReactJS app. We have prepared a skeleton app for you, but please change whatever you want (CSS files, HTML structure, JS structure, etc).
  17. The app will have two different components:
  18. - **Activity Feed** - simple list of calls
  19. - **Activity Detail** - detail of a call
  20. - **Archive** - the final user should be able to archive (and unarchive) a call. Archived calls will no longer be displayed on the Activity Feed and should have a separate Archived Tab.
  21. Show us what you can do in 24 hours. You will be assessed on the following parameters:
  22. - Focus on design (Pay attention to the UI/UX and transitions)
  23. - Best React Practices
  24. - Code Readability and Maintainability
  25. ## Submission
  26. After you're done with the assignment, please submit a link to the **GitHub/Bitbucket repository** (make sure it's public) with your code **AND** a deployment link where our recruiters can interact with the live version. You can use freely available tools like **Netlify, Vercel, Heroku, etc** to deploy your React application.
  27. You should email both the links to our recruiters with the subject line **Full Stack Developer Assessment - [Your Name]**
  28. **Note:** Submissions without a valid repository and deployment link will be removed from any further consideration.
  29. To give you an idea, here's what our app looks like:
  30. ![app](https://user-images.githubusercontent.com/630714/29357034-763d7216-8276-11e7-8bcb-e77d9645dfcc.png)
  31. ## Installation
  32. We're using [yarn](https://yarnpkg.com) here (but you can use npm):
  33. ```
  34. yarn install
  35. yarn start
  36. ```
  37. ## API documentation
  38. ### Routes
  39. Here is the API address: https://aircall-job.herokuapp.com.
  40. As you can see, it's hosted on a free Heroku server, which means that the first time you will fetch the API, it will take few seconds to answer.
  41. - **GET** - https://aircall-job.herokuapp.com/activities: get calls to display in the Activity Feed
  42. - **GET** - https://aircall-job.herokuapp.com/activities/:id: retrieve a specific call details
  43. - **POST** - https://aircall-job.herokuapp.com/activities/:id: update a call. The only field updatable is `is_archived (bool)`. You'll need to send a JSON in the request body:
  44. ```
  45. {
  46. is_archived: true
  47. }
  48. ```
  49. - **GET** - https://aircall-job.herokuapp.com/reset: Reset all calls to initial state (usefull if you archived all calls).
  50. ### Call object
  51. - **id** - unique ID of call
  52. - **created_at** - creation date
  53. - **direction** - `inbound` or `outbound` call
  54. - **from** - caller's number
  55. - **to** - callee's number
  56. - **via** - Aircall number used for the call
  57. - **duration** - duration of a call (in seconds)
  58. - **is_archived** - call is archived or not
  59. - **call_type** - can be a `missed`, `answered` or `voicemail` call.