TopShelf is a user-centric library management system designed to allow users to browse, borrow, and return books easily. The platform features a responsive design, category-based book display, borrowing and return system, and robust user authentication with Firebase. It integrates JWT tokens for secure operations and allows users to download books as PDFs. TopShelf ensures a seamless experience across devices with key features focused on usability and security.
TopShelf is a library management system built to efficiently manage book collections. I focused on developing an intuitive system for browsing, borrowing, and returning books. By implementing features such as book management, borrowing/returning systems, and secure user authentication, I gained hands-on experience in full-stack development, from the frontend interface to backend processes and security.
TopShelf organizes books into distinct categories for easy browsing. Each book has detailed information and offers the option to borrow or read. I implemented a real-time book availability system, which involved manipulating the data flow between the frontend and backend. This required working with React for dynamic content updates and integrating MongoDB to track book status and availability.
The borrowing and return system in TopShelf allows users to borrow books by selecting return dates. I implemented this feature by creating modals for date selection, which interact with the backend to update book availability. I also developed the 'Borrowed Books' page where users can manage their borrowed books and view the return dates. The challenge here was ensuring accurate updates in real-time to reflect borrowing actions and availability.
I integrated Firebase authentication to allow users to sign up and log in using either email/password or Google login. This required setting up Firebase on the backend and ensuring that authentication tokens were stored securely. To further enhance security, I used JWT tokens to authenticate API requests and authorize CRUD operations on book data, making sure only authenticated users could perform certain actions.
I implemented a feature that allows users to download pages of books as PDFs. This involved integrating a PDF generation library on the frontend to convert book content into downloadable files. Additionally, I developed a user-specific borrowed books section to track individual borrowings. This section retrieves data from MongoDB and dynamically updates based on the authenticated user, which helped me improve my skills in working with data filtering and user-specific views.
Developing TopShelf was an excellent opportunity to apply and refine my full-stack development skills. I gained extensive experience in frontend and backend development, working with technologies like React, Node.js, Express, and MongoDB. Implementing JWT authentication, real-time data updates, and PDF generation allowed me to deepen my understanding of web security, data management, and user interface development. Each feature presented its own challenges, and solving these helped me grow as a developer.