Giter VIP home page Giter VIP logo

mybooks's Introduction

MyBooks

Overview

MyBooks is a Progressive Web App (PWA) designed to help users manage their physical library at home. Built with SvelteKit, Tailwind CSS, and DaisyUI for styling, the app leverages SupaBase for the backend. Users can track their book collection, including details about each book and its author. The application is designed to be self-hosted, ensuring privacy and control over personal library data.

Features

  1. PWA Support: The application is a Progressive Web App, allowing users to install it on their devices for an app-like experience, including offline access.

  2. Mobile-First Design: The user interface is optimized for mobile devices, ensuring a seamless and user-friendly experience on various screen sizes.

  3. Fast and Friendly: The application is designed to be super-fast and user-friendly, providing a smooth experience for users managing their personal libraries.

Getting Started

Prerequisites

  • Node.js installed on your machine
  • SupaBase account and Database for the backend services

Supabase Database should look like this:

  • Authors Table
    • Name = my-books-demo-authors
      Col name default value type
      id auto increment int8
      created_at auto generated datetime
      died null varchar
      born null varchar
      image null text
      birth_place null varchar
  • Books Table
    • Name = my-books-demo-books
      Col name default value type
      id auto increment int8
      created_at auto generated datetime
      title null varchar
      tags null text
      cover null text
      started null varchar
      finished null varchar
      description null text
      genres null varchar
      language null varchar
      page null int8
      authorId author_id refrence

Installation

  1. Clone the repository:

    git clone [email protected]:Korak-997/MyBooks.git
  2. Change into the project directory:

    cd MyBooks
  3. Install dependencies:

    npm install
  4. Create a .env file in the root directory and configure it with your Appwrite Cloud credentials:

    VITE_SUPABASE_URL=YOUR_URL
    VITE_SUPABASE_KEY=YOUR_KEY
    
  5. Run the application:

    npm run dev
  6. Open your browser and navigate to http://localhost:5173 to access the application.

Usage

Adding Books

  1. Navigate to the Books Page (HomePage).
  2. Click on the + button.
  3. Fill in the required information such as title, pages, description, language, genres...
  4. Click Save to add the book to your library.

Adding Authors

  1. Navigate to the Authors page.
  2. Click on the + button.
  3. Provide the author's name, birthplace, birthday, and death date if applicable.
  4. Click "Save" to add the author to your library.

NOTE: Before adding a Book you should first add its Author otherwise you will not be able to add the book

Managing Relationships

  • If an author has multiple books, you can connect them in a one-to-many relationship by associating the books with the respective author.

Future Plans

  • Enhance application security.
  • Allow users to generate QR codes within the app.
  • Implement the ability to edit authors or books.
  • Let the application be used by multiple users
    • One library instance (one hosted webapp) should be created
    • An admin or multiple admins will be able to Create,Edit,Update,Delete books and authors
    • Different users would be able to follow their own reading progress
  • Allow users to share their stats
    • Finished books
    • Reading times
    • Favorites

Support and Contributions

  • For any issues or feature requests, please open an issue. Contributions are welcome through pull requests.
  • Feel free to use or develop the project forward
  • Feel free to make suggestions

License

This project is licensed under the MIT License.

NOTE: This a side project and because of my fulltime position i do not have to work on it often. So it may take a while until it get updates. I am making sure to keep main branch bug free. So only tested features or updates will be merged,

mybooks's People

Contributors

korak-997 avatar mend-bolt-for-github[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.