Skip to content

AwalHossain/ocean-library

Repository files navigation

OceanLibrary

Build Status License

OceanLibrary is a comprehensive book management web application built with React.js, RTK Query, TypeScript on the frontend, and Node.js, Express.js, and MongoDB on the backend. It is designed for book enthusiasts, allowing users to explore a vast collection of books, virtual bookshelves to categorize books into "Read," "Currently Reading," "Want to Read,"

Live Demo: https://oceanlibrary.netlify.app/

Overview

Bookish is a sophisticated web application designed for book enthusiasts. It provides a comprehensive platform for discovering, reviewing, and managing books. With an emphasis on user-friendly design and intuitive navigation, Bookish offers a plethora of features to enhance the user experience.

Key Features

Personal Libraries: Create virtual bookshelves to categorize books into "Read," "Currently Reading," "Want to Read,"
Reading progress: Track progress and update statuses on books being read.
Recommendations: Personalized book recommendations based on reading history
Book Discovery: Browse through an extensive collection of books or conduct targeted searches by title, author, or genre.
Advanced Filtering: Refine your search results based on specific criteria such as title, author, genre, and publication date.
Book Reviews: Share your thoughts on books you've read by adding reviews, including a rating and a summary.
Admin Functionality: Authorized administrators can create new books and update existing ones

Technical Highlights

Modern Frontend Stack: Harnessed React's component-based architecture and unidirectional data flow for a modular and scalable single-page application (SPA).
State Management: Utilized RTK Query's caching and reactive capabilities to efficiently manage application state and provide real-time updates.
TypeScript Integration: Implemented TypeScript for enhanced code maintainability, better tooling, and improved developer productivity.
Express Server: Constructed an Express server on the Node.js runtime environment, leveraging middleware design patterns for modular routing and controller logic.
NoSQL Database: Composed a MongoDB document-oriented database for flexible data schemas and rapid prototyping, facilitated by Mongoose for schema validation and community support.
Transaction Management: Employed Mongoose transactions to ensure atomicity, consistency, isolation, and durability (ACID) when updating user preferences across multiple collections.
Component Composition: Decomposed the user interface into smaller, reusable components for better code organization and maintainability.
State Lifting: Implemented state lifting to manage user preferences efficiently across multiple components.

A Glimpse of site

image

image

image

Frontend Setup

  1. Navigate to the ocean-library directory.
  2. Install the required node modules with yarn add.
  3. Start the frontend server with yarn dev.

Contributing

We welcome contributions to Bookish! If you're interested in enhancing the platform, feel free to fork this repository and submit your changes. We appreciate your help in making Bookish even better.

License

Bookish is licensed under the MIT License. For more details, please see the LICENSE file.

Contact

We'd love to hear from you! If you have any questions, suggestions, or feedback, please contact me.

About

The best option for a bookworm to browse is their favorite book

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published