Giter VIP home page Giter VIP logo

my-library's Introduction

Build Status Maintainability Test Coverage

This is book library manager, written in PHP and based on Slim4 and JqueryUI.
The main purpose of it is to manage own book library as excel table with ratings and other stuff like filename synchronizations of your books and more.
It supports all JQuery UI themes.

library main

library config

library import

Functionality

  • excel table is sortable, pagable
  • books CRUD
  • books categories
  • book cover is saved to database
  • book cover can be dropped in web interface
  • book cover can be imported from PDF (you need to have ghostScript)
  • web interface is fully themed (all JqueryUI themes)
  • i18n
  • MySQL and SQLite support
  • synchronization with filesystem (renames, deletes)
  • migrations
  • configuration is done via web interface

Requirements

  • PHP 7.4 or higher
  • SQLite or MySQL database

Setup & Run

git clone [email protected]:yurii-github/my-library.git
cd my-library
composer update
./serve

Application will be available at http://localhost:8080

Structure

Here's the list of most interesting places:

├── data            -  -  -  -  -  -  -  - your data is stored here
│   ├── config.json          -  -  -  -  - settings set via web interface
│   └── mydb.s3db            -  -  -  -  - book SQLite database
├── src
├── tests
├── public
│   ├── 3rd         -  -  -  -  -  -  -  - 3rd party assets
│   ├── assets      -  -  -  -  -  -  -  - our assets
├── └── index.php   -  -  -  -  -  -  -  - entry point of the application  
└── serve           -  -  -  -  -  -  -  - run webapp locally
------

Sync

If you have enabled synchronization application will sync changes to your filesystem!

  • Any cell change that has influence on filename of the book will cause its rename
  • If you delete book in MyLibrary it will delete corresponding real file if sync is ON
  • You cannot remove records without corresponding real file if sync is ON
  • You have to manage file extension manually to rename file properly.
  • If you change book filename format it will not rename all books! It will apply new format only to newly renamed books

Importing new books

To import books into the library you have to drop your books to library folder you've set in configuration and then on Import tab press "Import Books". It will import all books from file system that are not in database yet.

my-library's People

Contributors

yurii-github avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

my-library's Issues

Подключить к Mysql

Здравствуйте.
Появилась необходимость подключить БД к Mysql.

переписал console-config

if (file_exists($mylib_config_file)) {
  $mylib_config = json_decode(file_get_contents($mylib_config_file));
  $console_config['components']['db']['dsn'] = 'mysql:host=127.0.0.1;port=3306;dbname=ori_lib';
  $console_config['components']['db']['username'] = 'root';
}

return $console_config;

Вроде бы все получилось, таблицы появились, синхронизация происходит есть и записи, есть и обложки в бд. Но в гриде они не выводятся.

в консоли пишется ошибка - Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Категории по папкам

Можно ли организовать категории по файловому пути
например

data/books/Pushkin/Ruslan-i-Ludmila.pdf
data/magazines/Murzilka/1980/05-may.pdf

чтоб книга или журнал привязывались автоматом к нужной категории.

Несколько авторов у книги

Есть очень много книг-сборников.
Например
http://www.loveorigami.info/oriwiki/BOS-2004_(Manchester)

В этом сборнике очень много авторов.
Которые в свою очередь имеют свои отдельные книги

Например
http://www.loveorigami.info/oriwiki/Terry_Nicolas

Задача - получить книги одного автора, или получить книги (сборники), в которых этот автор упоминается.

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.