Skip to content

Instantly share code, notes, and snippets.

@praagyajoshi
Last active April 13, 2022 07:32
Show Gist options
  • Save praagyajoshi/c993536c9bc1efe179f62de9e1331b84 to your computer and use it in GitHub Desktop.
Save praagyajoshi/c993536c9bc1efe179f62de9e1331b84 to your computer and use it in GitHub Desktop.
Algolia Growth team - Fullstack assignment

Fullstack assignment

Welcome! We're glad you are applying to the fullstack position in the Growth team! 🚀

Goal

The goal of this assignment is to evaluate:

  • ability to solve problems
  • ability to architect a (small) fullstack application
  • communicate the solution and justify decisions

To that purpose, we expect you to create an app comprised of 2 parts:

  • backend
    • communicates with the frontend via APIs
    • indexes items within Algolia
  • frontend
    • displays a search page
    • displays a form to add/edit/delete records

The app is going to be an admin page for listing/editing/adding movies.
Please use this data set: https://gist.github.com/praagyajoshi/3a1c652667920924e6e399bf039d339d

Note: Algolia will never reuse your work. This assignment is purely for evaluation purposes.

Backend

Feel free to use any technology you are comfortable with (Rails, Express, etc.)!

APIs

The backend needs to support the following endpoints:

  • POST /api/v1/movies
    Indexes a movie within Algolia.
    Sample response:
    {
      "objectId": "2b9ad689-7a21-442a-a7bc-65167dc5221a"
    }
  • PUT /api/v1/movies/:uuid
    Indexes the updates movie within Algolia
  • DELETE /api/v1/movies/:uuid
    Deletes a movie from Algolia

Frontend

The frontend app should be a React based SPA. While TypeScript is not required, it is highly encouraged.

The app should include:

  • A search page
    • Has a search box to search across all the movies
      This search should be powered by Algolia
    • Shows the results as a grid or a list
    • Supports editing and deleting the movies
  • Ability to add a new movie
    • Can be implemented as a modal or as a separate page
    • Includes form validation

Evaluation criteria

In no particular order, we will pay attention to:

  • Quality of the code
  • UX of the frontend app (UI is not super important)
  • Architecture of the backend app
  • Attention to detail and handling errors/edge cases
  • Ability to add meaningful tests
  • Setup experience of the fullstack app

Submission

Please submit your work via the link you received in the assignment email

Questions

Please email us if you're unsure about anything.
Asking questions does not impact your evaluation.


Good luck! 🍀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment