Skip to content

freezed-or-frozen/yaslob

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yaslob

Yet Another Simple Library Of eBooks

Context

I was searching a tool to handle my ebooks stored on small server (Netgear Stora in my case). Calibre is a very powerful but too complex and needs a lots of RAM and CPU. Cops fulfills my needs but still needs a Calibre installation.

Goals

So YASLOB : Yet Another Simple Library Of eBooks Constraints :

  • can be installed on a small server (PHP 5.1.6)
  • does not need lots of dependencies on server side (cannot install anything, because of low space left)
  • doesn't need a database, only an XML file for storing data
  • doesn't need json_encode() and json_decode() functions (PHP 5.1.6)
  • looks professional and responsive design
  • can be configured easilly (simple file)
  • follows MVC architecture

Requirements :

  • upload a new ebook (in PDF format only)
  • gets automatically : cover image, title, author, year, number of pages
  • add a description, a note by clicking on stars
  • add/remove tags easily (with autocomplete)
  • list ebooks by date (last 10 added ebooks for example)
  • search ebooks by tags and by word in title, author or description
  • modify or delete an uploaded ebook
  • protect add/edit/delete actions with authentication
  • hide access to some ebooks (Not Safe For Kids)
  • serve ebooks from a directory outside root web server folder
  • check if ebook's name already exists and rename it

Screenshots

Add an ebook List ebooks

Installation

1 - Download all files on your webserver.

2 - The data folder must be writable by your server. For example :

chown -R www-data:www-data data
chmod 755 data/db/ebooks.xml

3 - Modify BASE_URL parameter in config.php. For example :

// Base URL
define("BASE_URL", "http://1.2.3.4/yaslob");

4 - Change the admin credentials too

// Base URL
define("ADMIN_LOGIN", "admin");
define("ADMIN_PASSWORD", "p4ssw0rd");

Database

Data format in XML file :

<?xml version="1.0" encoding="UTF-8"?>
<ebooks>
  <ebook>
    <title>CONTES MERVEILLEUX - Tome I</title>
    <author>Jakob et Wilhelm Grimm</author>
    <description>Premier tome des célèbres contes des frères Grimm</description>
    <year>2005</year>
    <pages>197</pages>
    <date>2021-04-16 09:21:09</date>
    <url>contes-merveilleux-tome-i</url>
    <nsfk>false</nsfk>
    <note>0</note>
    <tags>
      <tag>contes</tag>
      <tag>merveilleux</tag>
    </tags>
  </ebook>
</ebooks>

Credits

External libraries used (thank you) :

About

Yet Another Simple Library Of Books

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published