The Book Swapping Management System 📚🤝is a platform designed to connect book lovers within the same geographical region, making it easy to share and discover new reads. This system allows users to add, borrow, and rate books while fostering a sense of community among readers🌍✨.
Here’s how the system works:
Book Owners: Add the books you’re willing to share with others 📖➡️.
Book Borrowers: Browse and select books available within your region 📲📚.
Dual Roles: Users can be book owners, borrowers, or both, depending on their preferences 🤓✨.
Ratings: After reading, users can rate books on a 5-star scale ⭐⭐⭐⭐⭐ to help others discover quality reads.
Genres: Books are organized by genre, making it easier to find titles you’ll love 🎭📖.
📍 Geographical Regions: Each user is assigned to one region and can only borrow books available within that area.
🔄 Multiple Loans: Users can own and borrow multiple books at a time, but only one copy of a book can be loaned to a user at any given time.
🔎 Advanced Search: Users can search for books by title, author, genre, or rating but will only see options within their assigned region.
🏷️ Book Ownership and Borrowing: Users can lend or borrow books seamlessly, creating a dynamic and engaging platform for local book lovers.
To manage users efficiently, we utilized a Redis Hashmap data structure for creating, searching, updating, and deleting user records. This approach ensures fast and scalable operations 🛠️⚡. Below is an example of the fields and values as viewed in RedisInsight-Preview:
Key: user:<user_id>
Fields and Values:
name: The user’s name (e.g., "Jane Doe")
region: The geographical region assigned to the user (e.g., "North Bay")
borrowed_books: A list of books currently borrowed by the user (e.g., ["Book1", "Book2"])
owned_books: A list of books owned by the user (e.g., ["Book3", "Book4"])
ratings: A dictionary of books rated by the user with their corresponding ratings (e.g., {"Book1": 5, "Book2": 4})
By leveraging Redis for user management, we ensured high performance and real-time responsiveness in managing book loans and user interactions. This technical implementation allowed us to create a seamless and scalable experience for all users.
Building this project has been a rewarding journey, combining technical creativity with a passion for literature! 🌟📖
Special thanks to Yvette Green for collaborating with me on this project