This full-stack web application emulates the catalog system of a local library. It provides a user-friendly platform for managing a vast collection of books, authors, genres, and user accounts.
https://library-collection-iw5i.onrender.com
- Catalog Management: Allows librarians to create, read, update, and delete information about books, authors, and genres.
- Search Functionality(TODO): Users can search the entire catalog to find specific books or authors.
- User Accounts: Patrons can sign up, log in, and manage their profiles.
- Loan System: Enables checking out books, tracking due dates, and managing returns.
- Admin Interface: A backend interface for librarians to oversee library operations.
- Problem: Establishing a scalable database schema to handle complex relationships with minimal redundancy.
- Solution: Designed normalized schemas and utilized Mongoose for object modeling, ensuring efficient data organization.
- Problem: Implementing and querying one-to-many and many-to-many relationships in MongoDB.
- Solution: Used references for one-to-many and embedded documents for many-to-many relationships, leveraging MongoDB's aggregation framework for complex queries.
- Problem: Maintaining referential integrity during updates and deletions.
- Solution: Applied Mongoose middleware to automate cascading effects across related documents.
- Problem: Ensuring the system remains performant with growing data.
- Solution: Instituted indexing strategies and optimized queries to enhance response times.
- Problem: Presenting interrelated data in an intuitive manner.
- Solution: Developed a clear and navigable interface, allowing users to easily interact with the system.
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose
- Frontend: Pug templates, HTML, CSS, JavaScript
The project has been successful in delivering an operational and efficient system to manage library tasks. It has honed my backend development expertise, particularly in handling complex databases and creating robust user interfaces.