This Web App is a Platform for Ebook Management with interactive feature such as :
- Bookmark a page (with note)
- Crop the page (downloadable and share link feature)
- Print on page (landscape or portrait orientation with desired page range)
- Convert to PDF (downloadable and share link feature)
- Copy link current ebook
- Search the title of page
- Can create multiple ebook with desired link
- Mobile friendly
This app is using on top Laravel Framework 8 with few server requirements as below
- PHP >= 7.3
- BCMath PHP Extension
- Ctype PHP Extension
- Fileinfo PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- MYSQL
- Imagick / GD Extension
- Composer
- Node.js
Please make sure you know how to configure a server with nginx
For server configuration please refer to Laravel documentation here
Please ensure the root of the application to public folder for nginx server configuration
// inside file /etc/nginx/sites-available/example.com.conf
root /var/www/example.com/public;
don't forget create link to sites enable in terminal
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
also ensure the current php-fpm version of the server is same with the server configuration
// inside file /etc/nginx/sites-available/example.com.conf
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
and ensure add code as below in configuration file
// inside file /etc/nginx/sites-available/example.com.conf
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Please make sure the app running in HTTPS protocol or it will won't work properly
Since laravel framework need authorization to store the file in storage folder please change the owner and authorization with command as below in root folder of application
chown -R $USER:www-data storage
chmod -R 775 storage
and run command below so the storage folder can be accessed to public asset folder
php artisan storage:link
After make sure all the server requirement and application folder is stored in the server. run composer to download dependencies of the application as below inside root of folder application
composer install
npm install
please make sure the server already installed Composer
and also Install NodeJs
After downloading dependencies complete modify .env file (or rename .env.example to .env and modify after it)
APP_NAME=yourwebname
APP_ENV=production
APP_KEY=base64:zAYYuQxxgyeZi6dULoWcOmLv9GeDaDcNZc2eqWR2EAM=
APP_DEBUG=false
APP_URL=https://subdomain.domain.com
SANCTUM_STATEFUL_DOMAINS=*.domain.com
SPA_URL=https://subdomain.domain.com
SESSION_DOMAIN=.domain.com
DB_DATABASE=yourdatabasename
DB_USERNAME=yourdatabaseusername
DB_PASSWORD=yourdatabasepassword
SESSION_DRIVER=cookie
Then, please run command below in root of folder
composer dump-autoload
nb : command above should run after .env file changed
After we change DB data in .env file. please create database in MySQL with database name same as with DB_DATABASE in .env file if the database created, we can run command as below to create requirements table for the application
php artisan migrate
For first admin user so we can login in admin panel to manage Ebook. please run command below
php artisan db:seed --class=UserSeeder
so we can login in https://subdomain.domain.com/admin/auth/login with trial account below
email : trial@mail.com
psss : trial123
IMPORTANT : Please add new user in after login with trial account https://subdomain.domain.com/admin/auth/users and delete the trial account after it.
Before we can read an ebook in this app, the first thing to do is we have to upload ebook pages in Admin Area
Admin area link : https://subdomain.domain.com/admin/auth/login File Type : Jpeg file only File Size : < 1mb
For creating new ebook, please click above right button "Add Ebook" then input ebook name and slug name
slug name must be unique from another ebook, since it will display as a link in ebook reader mode ex : https://subdomain.domain.com/reader/this-is-your-ebook-slug
If we enter the ebook by click "enter" button on the ebook we created. We can add Chapters & Pages by click "Add Chapter" on above right button.
Eventhough the button name is "Add Chapter" we can add the page as well Chapter mean like a folder to categorized the section of the pages into subsection
Chapter page can be rename it into alias such as : Cover, I, II, A, B ,etc
If we rename the chapter folder or page outside folder, we have to rename it manually for all chapter folder and pages outside folder to get proper ordering number of the pages and chapter.
We can go deeper inside chapter and add pages in it by click the "magnify glass" button in folder icon after we create a chapter.
Pages can not be renamed inside chapter. Page name inside chapter only ordering of the pages.
For adding a page, please click "Add Pages" button on above right button then we can drag and drop or bulk upload the jpeg file as a desired page. This operation applied for adding a pages in chapter mode as well.
The pages we created with jpeg file have a feature as below
- Title pages renamed
- Mark the page to show in Content Navigation in reader mode
- Create Hotspot area and assign a link in it so the page in reader mode has a function to open the link when we click on hotspot area in reader mode
After we setup an ebook and add a pages, we can access the reader mode with link as below https://subdomain.domain.com/reader/your-slug-book-name
To change application logo, please replace file logo.png in folder below
/public/images/logo.png
Please free up regularly a storage in a folder where pdf conversion stored
/storage/app/public/pdf
also a folder where shared file after cropping page stored
/storage/app/public/shared