Skip to content

applyinnovations/incomplete-frontend-assignment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apply Innovations Frontend Assignment

Your task

Build a front end system according to the screen recorded example provided below. Your task is to build all the components and screens to provide a fast and convenient experience for the user. This is intended to be used as a mobile application and we will be testing your implementation on iOS and Andriod using expo.

Setup

To get started you must setup your development environment by installing the required dependencies.

  • Clone this repository
  • Make sure npm is installed
  • Make sure yarn is installed
  • Make sure expo-cli is installed
  • Enter your lan ip address in the native/App.tsx for the graphql api. (Mine was 192.168.0.68)

Terminal 1 (this will host the expo server for frontend testing)

  • cd native
  • expo install
  • yarn start

Terminal 2 (this will host the graphql api so your frontend talks to your backend)

  • cd server
  • yarn install
  • yarn start

The design

This app is a task management app. The screens you will have to complete include:

Screen Dark Light
Todos Todos Todos light
Create todo Create todo Create todo light
Completed todos Completed Completed light

You can download and view the screen recordings here.

User features

  • The user can click a button to add a todo
  • The user can add a todo within a full screen popup giving a title and due date
  • The user can view all todo items in a list, ordered by date
  • The user can scroll through todos if they do not all fit on the screen
  • The user can swipe to the left to delete a todo item
  • The user can view all completed todos on the completed tab
  • The user can swipe a todo to the right to mark it as completed and the completed todo moves to the completed tab
  • The user can see the status of the todo: upcoming, today, overdue using the colors green, orange and red respectively
  • (Bonus) The user should be able to change the theme of the app between light and dark mode according to their app settings
  • (Bonus) The user should feel tactile feedback when sliding the todo card past the activation point to either complete or delete the todo

Backend

The backend for this app is a local graphql server found in the server folder. You can use the methods defined in the folders native/operations/mutations and native/operations/queries to interact with the backend. You may modify the code in the server folder however modification is not required or expected to complete this assessment.

The backend component is designed to simulate an actual backend, and provides a small delay when requesting all todos. Please use a loading animation to prevent the app from looking frozen while the todos are loading in.

Assessment criteria

Criteria Description
Native animations The animated parts of components should run on the devices UI thread. To achieve this we recommend using the reanimated library.
Use of components To ensure your work is following best practices we recommend creating many small custom react components instead of copying and pasting common code throughout your work.
Speed of UI Your implementation must feel responsive to the user. If the user performs actions that have to wait for the backend to respond, be sure to include an animation to show the user that the app is loading.
Simplicity of code Your code must be readable and clear. In places where your code is not clear please use comments to explain those sections.

Tips

I am avaliable to help at anytime while you are completing this assignment, feel free to email me any questions or concerns you may have at [email protected]. I encourage you to reach out if you are stuck or need some advice, it will demonstrate to me that you are proactive and are able to communicate when issues arise.

For the date picker we recommend using import DateTimePickerModal from 'react-native-modal-datetime-picker' and for the haptic feedback we recommend using import * as Haptics from 'expo-haptics'.

Helpful resources

Feel free to access this folder I have created in Google Drive that contains resources that will help you complete this assessment, specifially videos explaining how to use the reanimated library and accomplish what is expected in this assessment.

Best of luck,
Alexander Bunn
🚀 Lead Engineer
App/y Innovations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published