This repository has been created with the sole purpose of letting new applicants show what they are truly capable of, using their hard skills and soft skills.
At Anubi Digital we β€οΈ Javascript. As a matter of fact, every application we craft is done in JS. But of course, we would be crazy to code vanilla JS. Therefore we chose among the best frameworks out there, to help us create wonderful products that can have word-wide impact among crypto adopters. Our stack is made up by:
- Next JS, a React Framework
[FrontEnd]
- Nest JS, a Node Js Framework
[BackEnd]
Together combined, they are the layer where we build our main platform which currently consist of:
- Main monolithic backend (plus a DB)
- Landing page
- Customer Web App
- Back-office Dashboard
That's why we have set up this coding interview to mock part of our main coding infrastructure, so that letting you understand if you find it fun and challenging enough to join us in our mission.
We want to make sure we onboard talented people who are willing to join our mission in creating cutting-edge apps. But since we are dealing with high sensitive data and delicate operations we have to ensure you are a responsible person who can get the job done no matter what the odds are.
Your mission, if you choose to accept it, would be implementing a REST Get endpoint
to gather mocked data, and presenting it on the Home Page
of the fake customer.
The following, is a full list of requirements you will be evaluated on.
Tasks are not order-locked, meaning that you are not required to complete all the tasks in order (even if we strongly recommend trying). You can submit you work even if not all of the challenges have been completed.
Backend
- Install dependencies and start the server
- Inspect the available API
Frontend (Small Admin Dashboard)
- Create a
table component
to view transactions data, labelling transactionNature
in such a way to be clearly visible at a glance. - Install and configure TailWind for component stylings, and use your creativity to improve the basic table you have just created
- Fetch transactions data using the
GET:transactions
endpoint
Backend
- Paginate the
GET:transactions
endpoint to return5 elements
per page (hint: use the date as index) - Implement the
GET:balances
endpoint so to have the current balance for each user and asset - Implement the
processUserInterests
method inside the class AppService - Setup a GraphQL endpoint and add a mutation that given a user id, an asset id and a date it will invoke
processUserInterests
method
Frontend (Small Admin Dashboard)
- Organize the fetching function in an Hook
- Add paging to the table, letting the admin switch between page 1 and page 2
- Show customers' balance in the
/balance
route, creating cards components for each user-asset pair, and it's balance sum - Configure an Apollo client in order to fetch the data from the GraphQL endpoint created in Backend Step4 and create a form that will invoke the user interests process routine inside a new route named
/interests
Category | Description |
---|---|
Tidiness | Project organization in folder and sub-folders, components naming and import / export logic |
Explainability | Document your code using appropriate comments, commit your changes properly |
UX/UI Quality | Improve the ui using some CSS to make interaction more appealing |
Code Quality | Well defined TypeScript Interfaces ad types,remove console.log once code is done |
Creativity | Solve problems with Eureka! (a.k.a. Ah Ah!) moments |
Autonomy | Translate a business problem into an actual solution using code. Solve issues reading documentations, stack overflow and other reliable sources of information |
Success | Complete the task before the deadline |
We strongly believe in peer help to solve tough problems. Because we evaluate one's time as the most precious thing on Earth, we don't want you to waste your time on problems that someone else has already solved. That's said, feel free to reach us out at support@anubidigital.com if you feel stuck for too long.
The project deadline is set to
2022-01-31T23:00:00.000Z
Once you feel comfortable with the code you wrote, submit your work by opening a merge request targeting develop
branch. We'll evaluate you job and you'll receive a feedback as soon as the evaluation process ends.