Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/frontend/node_modules
/backend/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/backend/build
/frontend/build

# misc
/frontend/.DS_Store
/frontend/.env.local
/frontend/.env.development.local
/frontend/.env.test.local
/frontend/.env.production.local

/frontend/npm-debug.log*
/frontend/yarn-debug.log*
/frontend/yarn-error.log*
27 changes: 8 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
# Full Stack Web Developer Challenge
## Task Description
Your task for this challenge is to create a small search engine comprising of two parts, a web-based user interface and a server component that exposes a REST API which provides search results retrieved from a corpus of text that will be provided to you in `corpus/hemingway.txt`.

Your submission will be evaluated for conforming to the specifications outlined below as well as code quality (maintainability, scalability, performance etc.). You are permitted to use any resources and libraries you wish, however, you should be able to justify design choices in your code. We also encourage the usage of any automated AI tools you may want to use to augment your ability to code e.g. ChatGPT, Claude, etc.
## Available Script to run frontend

In the project frontend directory, you can run:

## Requirements
The basic search engine should be capable of the following three operations.
### `npm run start`
Runs the app in the development mode.
Open [http://localhost:3001](http://localhost:3001) to view it in your browser.

1. Given a query consisting of a single word `w`, display the 3 most similar words in the search corpus according to some similarity metric of your choosing. You should return results even if `w` is not in the corpus.
2. Given a single word `x`, update the search corpus with `x`. The new word `x` should immediately be
queryable.
3. Given a single word `y`, remove **_the most similar word_** to `y` in the corpus from further search results.
### User Interface
The user interface should be a browser-based application developed using your JavaScript web framework of choice. It should support the three aforementioned operations. How this is done should follow the Figma outlined [here](https://www.figma.com/file/o9f9V0OM6i1Zdfu3dNTCIM/FSE-Test-UI?type=design&node-id=0-1).

### REST API
The REST API can be implemented using whatever language and frameworks of your choosing. Again, like the UI, it needs to support the three operations listed above. How you choose to accomplish this task is up to you.
## Available Script to run server

## Deliverables
To submit your challenge, fork this repository and provide the link to your forked repository.
You should also update this README to include instructions on how to run your search engine.
Tests are not mandatory but will be considered bonus points if you provide them.
In the project backend directory, you can run:

This challenge should take half a day to day at most (please do not over invest time in this as we will talk about the progress made in a subsequent interview). It is not expected to be a production ready application and thus will not be evaluated in such a context.
### `npm run start`
2 changes: 2 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@


Loading