Skip to content

Instantly share code, notes, and snippets.

@punit1108
Last active June 20, 2024 09:32
Show Gist options
  • Save punit1108/9b2058682fcb62952ed9fed0572445d5 to your computer and use it in GitHub Desktop.
Save punit1108/9b2058682fcb62952ed9fed0572445d5 to your computer and use it in GitHub Desktop.

Book Review Application

Objective:

Create a web application that allows users to browse, search, and review books. The application should have a user-friendly interface and a backend API to handle data storage and retrieval.

Front-end Requirements:

  1. Create a responsive user interface using HTML, CSS, and a JavaScript framework (e.g., React, Angular, or Next.js).
  2. Implement a book listing page that displays a grid of book covers along with their titles and authors.
  3. Create a search bar that allows users to search for books by title, author, or genre.
  4. Implement a book details page that displays the book's title, author, description, average rating, and user reviews.
  5. Allow users to submit their own reviews for a book, including a rating (e.g., 1-5 stars) and a comment.
  6. Implement client-side form validation for the review submission.

Back-end Requirements:

  1. Create a RESTful API using a server-side language/framework (e.g., Node.js with Express or Nextjs, Python with Django or Flask etc).
  2. Design and implement a database schema to store book information and user reviews (e.g., using MySQL, PostgreSQL, or MongoDB). Define the DDL, migrations of the schema, if not, provide an ER Diagram.
  3. Create API endpoints for retrieving book listings, searching for books, retrieving book details, and submitting user reviews.
  4. Implement server-side validation for the review submission endpoint.

Additional Features (Optional):

  1. Implement pagination for the book listing and search results.
  2. Allow users to sort books by various criteria (e.g., title, author, average rating).
  3. Implement user registration and login functionality.
  4. Add a feature to allow users to mark books as favorites.

Evaluation Criteria:

  1. Code quality, readability, and organization.
  2. Proper separation of concerns between the front-end and back-end.
  3. Proper use of version control (e.g., Git) and clear commit messages.
  4. Proper handling of edge cases and error scenarios.
  5. Efficiency of database queries and API responses.
  6. User experience and responsiveness of the interface.
  7. Bonus points for implementing additional features or writing unit tests.

Submission Guidelines -

  1. Create a git repository on your choice of SCM platform (github, gitlab, bitbucket etc)
  2. Provide crisp and clear instructions to run the code.
  3. Try to use an online DB so that DB setup is not required on Evaluator's machine.
  4. Hosting the application would accelerate the evaluation process but it is optional.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment