tubone24/ebook_homebrew

View on GitHub
README.rst

Summary

Maintainability
Test Coverage
.. image:: https://raw.githubusercontent.com/tubone24/ebook_homebrew/master/doc_src/logo.png
   :target: https://ebook-homebrew.readthedocs.io/en/latest/
   :align: center
   :alt: ebook_homebrew

==============
Ebook_homebrew
==============

The ``Ebook_homebrew`` is changing file name to only digit name like ``001.jpg`` and make e-book format files.

------

.. image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat
   :target: https://github.com/tubone24/ebook_homebrew/blob/master/LICENSE

.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
   :target: http://makeapullrequest.com

.. image:: http://www.repostatus.org/badges/latest/active.svg
   :target: http://www.repostatus.org/#active
   :alt: Project Status: Active

.. image:: https://travis-ci.org/tubone24/ebook_homebrew.svg?branch=master&logo=travis
   :target: https://travis-ci.org/tubone24/ebook_homebrew

.. image:: https://codecov.io/gh/tubone24/ebook_homebrew/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/tubone24/ebook_homebrew

.. image:: https://api.codeclimate.com/v1/badges/a3e2d70a87998a18e225/maintainability
   :target: https://codeclimate.com/github/tubone24/ebook_homebrew/maintainability
   :alt: Maintainability

.. image:: https://api.codeclimate.com/v1/badges/a3e2d70a87998a18e225/test_coverage
   :target: https://codeclimate.com/github/tubone24/ebook_homebrew/test_coverage
   :alt: Test Coverage

.. image:: https://img.shields.io/codeclimate/tech-debt/tubone24/ebook_homebrew.svg?style=flat
   :target: https://codeclimate.com/github/tubone24/ebook_homebrew/maintainability

.. image:: https://scrutinizer-ci.com/g/tubone24/ebook_homebrew/badges/quality-score.png?b=master
   :target: https://scrutinizer-ci.com/g/tubone24/ebook_homebrew/?branch=master

.. image:: https://scrutinizer-ci.com/g/tubone24/ebook_homebrew/badges/code-intelligence.svg?b=master
   :target: https://scrutinizer-ci.com/g/tubone24/ebook_homebrew/?branch=master

.. image:: https://ci.appveyor.com/api/projects/status/mx93pu69tqkngjxv?svg=true
   :target: https://ci.appveyor.com/project/tubone24/ebook-homebrew

.. image:: https://img.shields.io/appveyor/tests/tubone24/ebook-homebrew.svg?style=flat
   :target: https://ci.appveyor.com/project/tubone24/ebook-homebrew

.. image:: https://dev.azure.com/meitantei-conan/ebook_homebrew/_apis/build/status/tubone24.ebook_homebrew?branchName=master
   :target: https://dev.azure.com/meitantei-conan/ebook_homebrew/_build?definitionId=1

.. image:: https://img.shields.io/azure-devops/tests/meitantei-conan/ebook_homebrew/1.svg?compact_message&style=flat
   :target: https://dev.azure.com/meitantei-conan/ebook_homebrew/_build?definitionId=1

.. image:: https://api.shippable.com/projects/5c64353c33944406008b4ae8/badge?branch=master
   :target: https://app.shippable.com/github/tubone24/ebook_homebrew/dashboard

.. image:: https://circleci.com/gh/tubone24/ebook_homebrew.svg?style=svg
   :target: https://circleci.com/gh/tubone24/ebook_homebrew

.. image:: https://img.shields.io/lgtm/alerts/g/tubone24/ebook_homebrew.svg?logo=lgtm&logoWidth=18
   :target: https://lgtm.com/projects/g/tubone24/ebook_homebrew/alerts

.. image:: https://img.shields.io/lgtm/grade/python/g/tubone24/ebook_homebrew.svg?logo=lgtm&logoWidth=18
   :target: https://lgtm.com/projects/g/tubone24/ebook_homebrew/context:python

.. image:: https://www.codefactor.io/repository/github/tubone24/ebook_homebrew/badge
   :target: https://www.codefactor.io/repository/github/tubone24/ebook_homebrew
   :alt: CodeFactor

.. image:: https://github.com/tubone24/ebook_homebrew/workflows/Python%20package/badge.svg
   :target: https://github.com/tubone24/ebook_homebrew/actions
   :alt: Actions Status

.. image:: https://github.com/tubone24/ebook_homebrew/workflows/Docker%20Image%20CI/badge.svg
   :target: https://github.com/tubone24/ebook_homebrew/actions
   :alt: Actions Status

.. image:: https://api.codacy.com/project/badge/Grade/d25ad1bd88f24a0abfb2d801034be820
   :target: https://www.codacy.com/manual/tubone24/ebook_homebrew?utm_source=github.com&utm_medium=referral&utm_content=tubone24/ebook_homebrew&utm_campaign=Badge_Grade

.. image:: https://snyk.io/test/github/tubone24/ebook_homebrew/badge.svg?targetFile=requirements.txt
   :target: https://snyk.io/test/github/tubone24/ebook_homebrew?targetFile=requirements.txt

.. image:: https://readthedocs.org/projects/ebook-homebrew/badge/?version=latest
   :target: https://ebook-homebrew.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/ambv/black

.. image:: https://img.shields.io/pypi/dm/ebook-homebrew.svg
   :target: https://pypi.org/project/ebook-homebrew/#files

.. image:: https://img.shields.io/pypi/v/ebook-homebrew.svg
   :target: https://pypi.org/project/ebook-homebrew/
   :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/pyversions/ebook-homebrew.svg
   :target: https://pypi.org/project/ebook-homebrew/

.. image:: https://img.shields.io/pypi/format/ebook-homebrew.svg
   :target: https://pypi.org/project/ebook-homebrew/

.. image:: https://img.shields.io/gitter/room/tubone24/ebook_homebrew.svg
   :target: https://gitter.im/ebook_homebrew/community#

.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg
   :target: https://saythanks.io/to/tubone24

.. image:: https://beerpay.io/tubone24/ebook_homebrew/badge.svg
   :target: https://beerpay.io/tubone24/ebook_homebrew

.. image:: https://dply.me/yv0jty/button/small
   :target: https://dply.me/yv0jty#install

.. image:: https://img.shields.io/twitter/url/https/ebook-homebrew.herokuapp.com?style=social
   :target: https://twitter.com/intent/tweet?text=LikeThis:&url=https%3A%2F%2Febook-homebrew.herokuapp.com
   :alt: Twitter URL

.. image:: https://gitpitch.com/assets/badge.svg
   :target: https://gitpitch.com/tubone24/ebook_homebrew/master?grs=github
   :alt: GitPitch

.. image:: https://dockeri.co/image/tubone24/ebook-homebrew
   :target: https://cloud.docker.com/repository/docker/tubone24/ebook-homebrew
   :alt: dockerhub

.. image:: https://www.herokucdn.com/deploy/button.png
   :target: https://heroku.com/deploy
   :alt: Deploy to Heroku

.. image:: https://azuredeploy.net/deploybutton.png
   :target: https://azuredeploy.net/?repository=https://github.com/tubone24/ebook_homebrew
   :alt: Deploy to Azure

ebook_homebrew is command line interface which change file name to only digit name like 001.jpg and make e-book format files.

Getting Started
===============

The Ebook_homebrew is a python package, so that you can use ``setup.py`` or ``pip`` installer.

Using setup.py
--------------

.. code-block:: bash

   $ python setup.py install

Or using pip installer
----------------------

.. code-block:: bash

   $ pip install ebook-homebrew

Usage
=====

You can use global command ``ebookhomebrew`` .

Show help.

.. code-block:: bash

   $ ebookhomebrew -h

Ex1) Rename image file to only digit and Create PDF file.

.. code-block:: bash

   $ ebookhomebrew auto -s ./tests -d 3,4 -e jpg -f test.pdf

Ex2) Run Rest API Server for converting pdf from images.

.. code-block:: bash

   $ ebookhomebrew api -p 8080


ebookhomebrew command line interface
------------------------------------

You can use ebookhomebrew command line interface.

Subcommands
^^^^^^^^^^^

.. code-block:: bash

     Choose subcommands. Usually choose "auto"
     {auto,api,makezip}
      auto      Make only digit file name, convert e-book file such as PDF
      api               Provides Rest API interfaces
      makezip           Make zip file for adding specify extension files.

Options auto
^^^^^^^^^^^^

.. code-block:: bash

   -h, --help            show this help message and exit
   -s SRC_DIR, --src_dir SRC_DIR
                         Source directory which put original image files.
   --dst_dir DST_DIR     Destination directory which put e-book file.
   -d N,N, --digit N,N   Serial number digits you remain file name
   -e EXT, --extension EXT
                         Destination directory which put e-book file.
   -f FILENAME, --filename FILENAME
                         Destination directory which put e-book file.
   -m, --manual          Duplicate file name, solving manually.
   -r, --remove          Remove original image file.
   -y, --assume_yes      no verify users.

Options api
^^^^^^^^^^^

.. code-block:: bash

   optional arguments:
   -h, --help            show this help message and exit
   -p PORT, --port PORT  API Server Port


Testing
=======

Unit Test
---------

Using pytest, if you want to test.

.. code-block:: bash

   $ pytest

If you get coverage report, run coverage and report.

.. code-block:: bash

   $ coverage run --source=ebook_homebrew -m pytest
   $ coverage report -m

Or pytest-cov param for pytest

.. code-block:: bash

   $ pytest --cov=ebook_homebrew --cov-report html --cov-report xml

Integration Test
----------------

Using pytest, if you want to test with mark "--it"

.. code-block:: bash

   $ pytest --it

With tox
--------

With tox, you can test multiple python version.(only python3.5, 3.6)

.. code-block:: bash

   $ tox

CI/CD
-----

This Repo is studies repo which CI/CD Config by tubone.
Check config on this repo!

Travis-CI
^^^^^^^^^

This repository uses `Travis-CI <https://travis-ci.org/tubone24/ebook_homebrew/>`_ and be building jobs by push or PR branches.

Codecov
^^^^^^^

Also you can check coverage with `Codecov <https://codecov.io/gh/tubone24/ebook_homebrew>`_

CodeClimate
^^^^^^^^^^^

You can check the code maintainability, smells and technical debt with `CodeClimate <https://codeclimate.com/github/tubone24/ebook_homebrew>`_

Scrutinizer
^^^^^^^^^^^

`Scrutinizer <https://scrutinizer-ci.com/g/tubone24/ebook_homebrew/?branch=master>`_ is the CI which build app and check code quality

Appveyor
^^^^^^^^

`Appveyor <https://ci.appveyor.com/project/tubone24/ebook-homebrew>`_ is the CI which use Windows Platform and Push the artifacts to `PyPI <https://pypi.org/project/ebook-homebrew/>`_

Azure Pipelines
^^^^^^^^^^^^^^^

This repo use `Azure Dev Ops Azure Pipelines <https://dev.azure.com/meitantei-conan/ebook_homebrew/_build?definitionId=1>`_ with platform MacOS.

Shippable
^^^^^^^^^

`Shippable <https://app.shippable.com/github/tubone24/ebook_homebrew/dashboard>`_ is the CI use Docker containers.

CircleCI
^^^^^^^^

`CircleCI <https://circleci.com/gh/tubone24/ebook_homebrew>`_ is the great CI which can use selenium (not use selenium test in this repo but use `ebook-homebrew-vue-typescript-client <https://github.com/tubone24/ebook-homebrew-vue-typescript-client>`_).

LGTM
^^^^

`LGTM <https://lgtm.com/projects/g/tubone24/ebook_homebrew/alerts>`_ is code smells check.

Snyk
^^^^

`Snyk <https://snyk.io/test/github/tubone24/ebook_homebrew?targetFile=requirements.txt>`_ is fix and prevent vulnerabilities in this code.

Readthedocs
^^^^^^^^^^^

This repo use `ReadTheDocs <https://ebook-homebrew.readthedocs.io/en/latest/?badge=latest>`_ by Docs.

DockerHub
^^^^^^^^^

Push master branch, build docker container with `DockerHub <https://cloud.docker.com/u/tubone24/repository/docker/tubone24/ebook-homebrew>`_

Examples
========

Stand Alone Web GUI
-------------------

Stand alone Web GUI. Such as `Create PDF from your images <examples/web_gui/>`_ by using Flask.

Command Line Tools with using Rest API
--------------------------------------

Command Line Tools which client app for REST API.

`Client App with ebook-homebrew's rest API <https://github.com/tubone24/ebook_homebrew/tree/master/examples/use_rest_api>`_

Vue.js Frontend App
-------------------

Using Vue.js, Call REST API.

`ebook-homebrew-vue-client (deprecated) <https://github.com/tubone24/ebook-homebrew-vue-client>`_

`ebook-homebrew-vue-typescript-client  <https://github.com/tubone24/ebook-homebrew-vue-typescript-client>`_

Rust Command Line Client
------------------------

Using Rust, Call REST API by CLI

`ebook-homebrew-rust-client <https://github.com/tubone24/ebook-homebrew-rust-client>`_

Deploy API to Heroku
====================

Deploy Ebook-homebrew to Heroku app.

Push a button below.

.. image:: https://www.herokucdn.com/deploy/button.png
   :target: https://heroku.com/deploy
   :alt: Deploy to Heroku

DEMOS
=====

REST API
--------

The ebook-homebrew REST API DEMO is deploy to Heroku.

`https://ebook-homebrew.herokuapp.com/ <https://ebook-homebrew.herokuapp.com/>`_

`REST API DOCS (OPENAPI) <https://ebook-homebrew.herokuapp.com/docs>`_

With Vue.js Front
-----------------

Using Vue.js, Call REST API DEMO App, deploy to Heroku.

`https://ebook-homebrew.herokuapp.com/#/sample <https://ebook-homebrew.herokuapp.com/#/sample>`_

With Flutter Android App
------------------------

Using Flutter, Call REST API DEMO Android App, deploy to Deploygate. Try me!

.. image:: https://dply.me/yv0jty/button/large
   :target: https://dply.me/yv0jty#install
   :alt: Try it on your device via DeployGate

And also, you can download to `Google Play <https://play.google.com/store/apps/details?id=com.tubone.ebook_homebrew_flutter>`_

GitPitch
========

Ebook Homebrew presentation is made in GitPitch.

`GitPitch <https://gitpitch.com/tubone24/ebook_homebrew/master?grs=github>`_

Licence
=======

This software is released under the MIT License, see LICENSE.

API Document
============

The `Document <https://ebook-homebrew.readthedocs.io/en/latest/>`_ write by Sphinx.