In this project, you will create an admin portal for "BookNest," a fictional bookstore. This portal will serve as a management tool for the bookstore’s inventory, allowing administrative users to add, update, and delete book entries. Regular users will be able to view the bookstore's catalog without authentication.
- Frontend: Develop the user interface using React.js focusing on reusable components.
- Backend: Build the server with Express.js, interfacing with a SQLite3 database, and implementing secure routes for admin functionalities.
- Usability: Ensure the portal is user-friendly, with efficient navigation and responsive design.
-
Database Setup: Use SQLite3 to manage data storage.
- Tables should include at least
booksandadmins. bookstable includes fields such asid,title,author,isbn,price,image_url, anddescription.adminstable manages admin credentials and roles.- Other tables might be needed depending on other things you want to do.
- Tables should include at least
-
API Development: Create RESTful APIs using Express.js.
- Public endpoints that list all books and get details for a single book.
- Protected endpoints for adding, updating, and deleting books, accessible only to admins.
-
Image Uploads: Implement Multer for handling image uploads associated with book entries.
-
Authentication and Authorization:
- Implement JWT-based authentication to secure admin endpoints.
- Ensure that actions such as add, update, and delete operations on book records are restricted to authenticated admin users.
-
React Components:
- Create small, maintainable components such as
BookList,BookDetail,Login,AdminDashboard, and others. - Utilize React Router for navigation between components.
- Create small, maintainable components such as
-
State Management:
- Use React context for state management across the application.
- Ensure proper state updates when performing CRUD operations.
-
Must have - Book Search Functionality:
- Search through the names of the books
-
Nice to have - Book Facet Search Functionality:
- Implement a search feature to find books by author, ISBN or more.
-
Nice to have - Nearest Store Locator:
- Include a feature to help users find the nearest BookNest store using geolocation API.
-
Nice to have - Book Reviews:
- Allow users to read and submit reviews for different books.
-
Nice to have - Bulk Uploads:
- Allow admins to upload book details in bulk through CSV file uploads.
- Your project should be submitted via GitHub, containing both frontend and backend code (also the sqlite database file).
- Include a README.md file with setup instructions, including how to install dependencies, configure the environment, and run the application if needed.
- Functionality: All specified requirements must be met.
- Code Quality: Code should be clean, well-organized, and properly commented.
- Design and Usability: The application should be easy to navigate and visually appealing.
- Security: Application must securely handle user data and protect against common vulnerabilities.
Good luck, and happy coding!