Challenge has Ended

Rethink UX Frontend Internship Hiring Challenge

The aim of this challenge is to build a painting system from scratch using ReactJS


Full Stack
₹12,000.00 - ₹18,000.00 per Month
13 of 250 Participants
Organized By Rethink UX

Welcome to Rethink UX Frontend Internship Hiring Challenge!

Rethink UX is hiring front end developers on Dockship! The aim of this challenge is to build a painting system from scratch using ReactJS. Please refer to the "Submission Guidelines" to understand what to build.

Must have skills in the Frontend Developer

  1. Sound Knowledge of Web Frameworks & Object Relational Mappers (ORMs) 
  2. Functional programming & systems design 
  3. Building strong APIs 
  4. Good Understanding of Asynchronous Architecture 
  5. Error handling and exception recovery 
  6. Knowledge of testing frameworks (e.g. Jest, Jasmine, Mocha) 
  7. Managing databases and ORMs from Node.js (e.g. MongoDB, Postgres, MySQL) 

A good front-end developer is the type of person who has an incredible eye for detail and user experience. They also need to be able to closely collaborate with designers. The best quality, though, is their ability to put it all together and make something happen.

We work with React

Sound knowledge of ReactJS is required for the candidate and he must know ReactJS from in and out. Here are the concepts the candidate must know:

  1. Components
  2. Props and States
  3. Interfering with DOM using Javascript
  4. CSS
  5. Strict Mode
  6. Hooks
  7. Higher Order Components
  8. Global State Management

To assess the requirements, we have created an assignment that the candidate needs to submit. Please refer to the "Submission Guidelines".

--- Final submission ---

  1. A singe zip file - - containing all the files required to run the frontend app. Please read the "Assignment" section below to understand what to build.
  2. A quiz that appears in the "My Submission" section of this challenge.
  3. Resume (Recommended)
  4. KYC (Recommended)

--- Assignment ---

Aim: To build a painting system from scratch

Technologies allowed: ReactJS, HTML5, Canvas, CSS

Time Constraint: 48 hours starting from your participation.

Description: You’ve to make a paint system that contains a toolbar, menubar and a drawing area.

The menu bar should have 2 buttons: New and Save.

  • The save button should save the drawn objects in indexedDB.
  • The new button should ask the user the size of the canvas and discard the existing drawn objects.

The toolbar should have the following buttons:

  • Undo/Redo button to undo and redo the actions.
  • Rectangle button to toggle rectangle drawing.
  • Circle button to toggle circle drawing.
  • Line button to toggle straight-line drawing.
  • Pen to draw freehand.

The mouse events on the canvas should respond acc. to the toolbar’s state

Here’s the rough design:

The candidate also needs to build a list page where all the documents present in the indexedDB would be present. Note that the indexedDB could be replaced with the backend API soon, so design the system accordingly so that it takes less time and effort to migrate.


How to make a submission?

  1. Click on "My Submission"
  2. On the next page, click on "+ New Submission"
  3. Upload your CSV in the next page and click on "Submit for Review"

Please note:

  1. You must submit your ZIP file by uploading the ZIP in the "My Submissions" section of this challenge.
  2. Your submission will be graded manually and it can take upto 48 hrs.
  3. If there is any error in the submission, your final score will be marked as 0 or a warning prompt of “Invalid Score” will be displayed.

Judgement Criteria

  1. Division of components.
  2. Nomenclature of the components.
  3. Data flow inside the application.
  4. The logic of implementation of undo/redo.
  5. Performance metrics:
  6. Maximum number of undo/redo support
  7. The maximum number of objects that could be drawn on the system.
  8. Memory usage while running the application.
  9. The number of third party libraries used ( the more libraries you use, the more -ve points will be awarded).
  10. State Management
  11. Error handling
  12. Testing. Eg: line draw function modifies state as expected


  1. The process of interviews is managed by the organizer Rethink UX.
  2. The submission should be in a proper format as described by "Submission Guidelines".
  3. Late submission will not be accepted beyond provided deadline (Indian Standard Time).


  • Internship Offering with monthly stipend between INR 12,000 and INR 18,000.
  • Participants with at least 1 valid submission will receive certificate from "Rethink UX" for commendable effort.
  • Top 3 participants will get a permanent place in Dockship's Hall of Fame.

Job Benefits:

  • Work with the Best and Brightest Technical Talent
  • The stable and well-funded company
  • Virtual Happy Hours, Team Building Events, Hackathons

Top 5 people will receive Dockship Gems:

  1. Rank 1: 250 💎
  2. Rank 2: 150 💎
  3. Rank 3: 100 💎
  4. Rank 4: 50 💎
  5. Rank 5: 50 💎

How do I apply for this Challenge?
Can I make multiple submissions?
Where will the results be declared?
Can we apply as a team?
I've other queries, where can I get support?
Challenge Announced
27-Feb-2021, 10:35 am IST
02-Mar-2021, 9:30 am IST
Challenge Started
Application Deadline
10-Mar-2021, 3:30 pm IST
12-Mar-2021, 3:30 pm IST
Challenge Ended