0% found this document useful (0 votes)
11 views

Assignment_Interns

Uploaded by

mebin86547
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Assignment_Interns

Uploaded by

mebin86547
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Assignment: Book Library Management System

Overview:

Create a Book Library Management System where:

 Visitors can view available books, filter by genre, author, or publication year.
 Admin users can log in, add, update, and delete books.

The system will consist of:

 Frontend: Built using React JS.


 Backend: Built using Spring Boot to expose REST APIs for managing books and user authentication.
 Database: PostgreSQL to store book data, user information, genres, authors, and reviews.

Assignment Breakdown

1. Frontend (React JS)

 Set up a React JS application using Create React App.

Key Features for Frontend:

 LoginPage : On successful login, the backend will return the user’s role (Admin or Visitor), which will be
stored in localStorage or sessionStorage for session management.
 BookList: Display a list of books in a table or grid format. Each book should display its title, author, genre,
publication year, and a link to view details.
 BookForm: A form to add new books or edit an existing one.
 BookItem: Display detailed information of a selected book with options to edit or delete it.
 BookFilters: Filter books by genre, author, or publication year.

Requirements for Frontend:

 BookList Component:
 Fetch and display the list of books from the backend.
 Include pagination if the list grows large.
 Include buttons to edit or delete a book.
 BookForm Component:
 Provide input fields for book details (title, author, genre, publication year).
 Implement form validation (e.g., non-empty fields for title and author).
 Implement both "Add New Book" and "Edit Book" functionalities.
 This form will be available only for admin users, other users can not access this form.
 BookItem Component:
 Show detailed information about the book when clicked, with an option to edit or delete.
 BookFilters Component:
 Allow users to filter books by genre, author, or publication year.
 Ensure that the filtered data is reflected in the BookList component.
 State Management:
 Use React’s useState and useEffect hooks to manage state and fetch data from the backend.
 Use axios or fetch to interact with the backend REST API.
2. Backend (Spring Boot)

 Set up a Spring Boot project using Spring Initializr with dependencies for:
 Spring Web (for RESTful APIs)
 Spring Data JPA (for interacting with PostgreSQL)
 PostgreSQL Driver (to connect to PostgreSQL)
 Spring Boot DevTools (for development convenience)

3. Database (PostgreSQL)

Design four tables in the PostgreSQL database:

 Books: Stores information about books.


 Authors: Stores information about authors.
 Genres: Stores information about book genres.
 Reviews: Stores user reviews for books.
 User: Stored user details with role either Admin or Visitor

Evaluation Criteria:
 React JS:
 Correctly display related data (authors, genres, reviews).
 Implement complex forms (selecting multiple genres for a book).
 Ability to handle state and manage API calls correctly for multiple related entities.
 Spring Boot:
 API endpoints to filter books based on different criteria (author, genre).
 Proper handling of CRUD operations and relationships between entities.
 Swagger Documentation of all API
 Database:
 Correct implementation of relational database with PostgreSQL.
 Efficient use of joins and constraints.
 Comments for each column clearly indicating use of the column.

You might also like