Crypto Kit

An Ezrah React Native Take-Home Assignment


Quick

Thank you for your time and effort in completing our take-home assignment. This task is designed to assess not just your technical skills, but also your creative approach to building intuitive, beautiful, and functional UIs in React Native. We want to see how you make thoughtful design choices and implement solutions that enhance the user experience.


React Native Component Design

Overview

This assignment consists of three key UI components. We've provided the base structure to give you a starting point, but we encourage you to personalize the design and enhance the user experience. Let your creativity shine through!

UI Components

  1. Tokens View
  2. Single Token View
  3. Settings View

The Tokens View has already been set up for you. Feel free to modify, recreate, or improve upon it in any way you like.

Core Feature Set

Your task is to implement the following features:

  • Token List & Favoriting: Users should be able to view a list of tokens and favorite specific tokens.
  • Settings Page: This page should allow users to view a sample profile and see a list of their favorited tokens.
  • Single Token View: Clicking on a token in the list should take the user to a detailed view of that token, showing major information about the token.

Refinement Suggestions

You are free to approach the design of the Single Token View and Settings Page in any way you see fit, but here are some suggestions to get you started:

  • Try using a unique font or theme to enhance the product's visual identity.
  • Consider adding charts or graphs to the Single Token View to visualize token data.
  • Any additional features or UI improvements you believe will elevate the user experience.

We won’t give away too many ideas 😉—we’d love to see your creative vision in action!


APIs & Resources

We've integrated an API from CoinMarketCap using a free plan. You can find credentials set up in the project .env file.

Feel free to explore and implement any additional API endpoints available in the CoinMarketCap API documentation to enhance your solution.


Node.js Task

Overview

In addition to the React Native component, we’d like to see your skills in Node.js. Your task is simple yet crucial: wrap the API in a GraphQL endpoint with a well-structured query system. Implement an LFU (Least Frequently Used) caching mechanism to optimize the data handling process.

Requirements

  • GraphQL Endpoint: Create a GraphQL server that interacts with the API and supports well-defined queries.
  • LFU Caching: Implement a caching system that follows the LFU algorithm to ensure efficient data retrieval and performance optimization.

Final Thoughts

We’re excited to see how you approach this task, and we encourage you to think outside the box! Focus on delivering clean code, user-friendly design, and smart optimization.

Good luck! 🚀