Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 2.41 KB

TASKS.md

File metadata and controls

48 lines (32 loc) · 2.41 KB

Technical Take-Home Assessment: Online Bookstore Application

Task Description:

You are tasked with developing an online bookstore application. The application should allow users to browse books, search for books by title or author, and view book details. As a bonus, users should be able to register an account and log in, add books to their "favorites" list, and manage their "favorites" list.

Requirements:

  1. Frontend Development:
  • Implement a responsive web interface using React.
  • Design intuitive user interfaces for browsing books, searching for books by title or author, and viewing book details.
  1. Backend Development:
  • Implement CRUD operations for managing and browsing books, as well as viewing book details.
  • Integrate with a database of your choice to store book data.
  • NOTE: We ask that you do not use Next.js for this assessment. Any other backend framework is fine.
  1. Database Design:
  • Design an appropriate database schema to store information about books.
  1. Additional Features:
  • Implement validation and error handling on both the frontend and backend to ensure data integrity and provide a smooth user experience.
  • Allow for the entire project to be stood up using a single Docker Compose command.
  1. Bonus Points:
  • Implement user authentication for login and registration functionalities (3rd party library/services are allowed).
  • Implement a "favorites" list where the user can save and manage their favorite books.
  • Verify your work with unit tests.
  • Use a monorepo build system to structure your project (hint: We are big fans of Nx).

Submission Guidelines:

  • Zip your project and submit the zip via LiquidFiles.
  • Provide documentation outlining the architecture, design decisions, and any additional information necessary to understand and evaluate the application.
  • Include a README.md file with instructions on how to run the application and any assumptions made during development.

Evaluation Criteria:

  • Code quality, organization, and adherence to best practices.
  • Functionality completeness and correctness according to the provided requirements.
  • User interface design, usability, and responsiveness.
  • Database design and efficiency.
  • Clarity and completeness of documentation.
  • Whether the entire project can be stood up using a single Docker Compose command.