Thank you for your interest in a position with the Engineering team at Real Links!
In this repository, you will find the skeleton of a web application for finding anagrams of a given input.
Your task is to complete the application by implementing the functionality described in the User Story below.
Please clone the repository and email a link to your completed project to the Engineering team.
- As a logged in user
- When I enter a string of characters into the input field
- If there are matching anagrams, I want to see a list of those words (including the input, if it is a valid word)
- If there are no matching anagrams, I want the lack of matches to be clearly communicated
An anagram is defined as a word formed by rearranging the letters of a different word. In this case, we consider any word containing exactly the same alphanumeric characters to be an anagram, ignoring any punctuation or changes in case. For example:
- “iceman” and “cinema” are considered anagrams.
- “engineer” and “re-engineer” are considered anagrams, ignoring the hyphen.
- “3D” and “3-D” are considered anagrams, ignoring the hyphen.
- “Worth” and “throw” are considered anagrams, ignoring the capital letter.
- The user can enter a string of characters into an input field.
- The user can see a list of anagrams of the input string.
- The user can see a message if there are no anagrams of the input string.
- Hide the anagram listing feature behind an authentication guard
- Only allow users to log in with a "Login with Gmail" button
- Use a modern UI library and framework prefereably Next.js with HeroUI
- Make sure that the UI is very intuitive and easy to interact with
- When the input is empty, the user should see no message or list of results.
- For the input “asdfghjk”, the user should see the message “No anagrams found”.
- For the input “steak”, the user should see a list of results including the words: “Keats”, “skate”, “Skeat”, “stake”, “steak”, “takes”, “teaks”.
- For the input “eeenginr”, the user should see a list of results including the words: “engineer”, “re-engine”.