This project is an online bookstore application implemented using Java SE sockets and multithreading to achieve a client-server architecture. The application allows users to browse, search, borrow, and lend books. It also includes features such as user authentication, request management, and error handling.
Server-Client Communication: Utilizes Java SE sockets for communication between the server and clients. Book Inventory Management: Maintains a database of available books including details like title, author, genre, price, quantity, and list of clients who have the book. User Authentication: Implements login and registration mechanisms for secure access to the application. Browse and Search Books: Enables users to browse through the catalog and search for books by various criteria. Add and Remove Books: Allows users to add books to lend and remove books they no longer wish to lend. Submit a Request: Users can submit borrowing requests to other users and engage in chat for further communication. Accept / Reject a Request: Users can manage incoming borrowing requests by accepting or rejecting them. Request History: Provides users with access to their request history. Library overall statistics: Admin can view the overall status of the library, including borrowed books, available books, and request statuses. Error Handling: Implements mechanisms to handle various error scenarios and invalid user inputs.