zemfrog 5.0.1
Zemfrog is a simple framework based on flask for building a REST API quickly.
License: MIT license
Requires Python: >=3.6
Keywords: flask wsgi web zemfrog api

=======
zemfrog
=======

.. image:: https://raw.githubusercontent.com/zemfrog/zemfrog/master/docs/_static/logo.png
    :target: https://zemfrog.readthedocs.io
    :alt: zemfrog logo

.. image:: https://img.shields.io/pypi/v/zemfrog.svg?style=for-the-badge
    :target: https://pypi.python.org/pypi/zemfrog

.. image:: https://img.shields.io/pypi/status/zemfrog.svg?style=for-the-badge
    :target: https://pypi.python.org/pypi/zemfrog/

.. image:: https://img.shields.io/pypi/dm/zemfrog?logo=python&style=for-the-badge
    :target: https://pypi.python.org/pypi/zemfrog/

.. image:: https://img.shields.io/travis/zemfrog/zemfrog.svg?style=for-the-badge
    :target: https://travis-ci.com/zemfrog/zemfrog

.. image:: https://readthedocs.org/projects/zemfrog/badge/?version=latest&style=for-the-badge
    :target: https://zemfrog.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status



Zemfrog is a simple framework based on flask for building a REST API quickly.
Which focuses on building a customizable, flexible and manageable REST API!

This project is heavily inspired by `FastAPI <https://fastapi.tiangolo.com/>`_ and `Django <https://www.djangoproject.com/>`_ Framework.


Notes
-----

The project is still in ``BETA`` version, **which means that all the APIs in it are still unstable**.
Please be careful if you want to use it in a production environment! thanks.


Why zemfrog?
------------

Zemfrog is equipped with advanced features including:

* Solid application structure.
* Automatically generate REST API.
* Built-in JWT authentication.
* RBAC support.
* Automatically generate API documentation (swagger-ui).
* Background jobs support.
* Database migration based on application environment.
* And much more...


Donate & Support
----------------

Keep in mind that donations are very important to me, because currently I am working alone to develop this project.
It takes a lot of time and energy. If this project is useful, please give me any support. I really appreciate it.

And also you can donate your money via:

.. image:: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
    :target: https://www.buymeacoffee.com/aprilahijriyan

.. image:: https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif
    :target: https://www.paypal.me/aprilahijriyan


.. image:: https://c5.patreon.com/external/logo/become_a_patron_button.png
    :target: https://www.patreon.com/bePatron?u=20603237

.. image:: https://ko-fi.com/img/githubbutton_sm.svg
    :target: https://ko-fi.com/E1E746746

Links
-----

* Homepage: https://github.com/zemfrog/zemfrog
* Documentation: https://zemfrog.readthedocs.io
* License: `MIT <https://github.com/zemfrog/zemfrog/blob/master/LICENSE>`_


Credits
-------

* `Flask <https://github.com/pallets/flask>`_
* `Cookie Cutter <https://github.com/cookiecutter/cookiecutter>`_


=======
History
=======

1.0.0 (2020-09-03)
------------------

* First release on PyPI.

1.0.1 (2020-09-07)
------------------

* Automation create (CRUD) API
* Update template API
* Update zemfrog release information.

1.0.2 (2020-09-08)
------------------

* Update API structure

1.0.3 (2020-09-08)
------------------

* re-upload

1.0.4 (2020-09-09)
------------------

* fix manifest file

1.0.5 (2020-09-10)
------------------

* add command boilerplate
* add schema command

1.0.6 (2020-09-15)
------------------

* add jwt authentication
* refactor blueprint boilerplate
* add send async email
* fix celery

1.0.7 (2020-09-19)
------------------

* Fix: `#8 <https://github.com/zemfrog/zemfrog/issues/8>`_
* flask-apispec integration.
* improve authentication.
* add default schema models.
* Fix: rest api boilerplate
* IMPROVE: Added a prompt if a schema model exists.
* IMPROVE: add zemfrgo to requirements
* DOC: add README to project boilerplate

1.0.8 (2020-10-03)
------------------

* Fix: `#12 <https://github.com/zemfrog/zemfrog/issues/12>`_, `#13 <https://github.com/zemfrog/zemfrog/issues/13>`_, `#14 <https://github.com/zemfrog/zemfrog/issues/14>`_
* IMPROVE: import the orm model in the schema generator.
* General Update:  update development status

1.0.9 (2020-10-05)
------------------

* Fix: `#16 <https://github.com/zemfrog/zemfrog/issues/16>`_, `#14 <https://github.com/zemfrog/zemfrog/issues/14>`_, `#17 <https://github.com/zemfrog/zemfrog/issues/17>`_
* NEW: add version option

1.2.0 (2020-10-19)
------------------

* NEW: add load urls
* NEW: add load middlewares
* NEW: middleware boilerplate.
* NEW: multiple apps support
* Fix minor bugs

1.2.1 (2020-10-27)
------------------

* New Feature: added prompt to manage the app.
* moved mail dir to templates/emails
* add ``api_doc`` & ``authenticate`` decorator.
* NEW: add swagger oauth2.
* NEW: add first_name & last_name column.
* IMPROVE: Support creating REST API descriptions via function documents.
* Refactor Code: Rename and add field validation.
* Code Change: update REST API structure.

1.2.2 (2020-10-28)
------------------

* Refactor generator
* New Feature: add error handler


1.2.3 (2020-11-13)
------------------

* Adding: current_db local proxy
* rename services directory to tasks


1.2.4 (2020-11-14)
------------------

* support multiple static files
* Add an endpoint to validate the password reset token
* fix `#37 <https://github.com/zemfrog/zemfrog/issues/37>`_


1.2.5 (2020-11-18)
------------------

* NEW: add extension, model, task generator
* Refactor Code: add model mixin
* add command user, role & permission
* FIX: auth logs
* New Feature: supports role-based access control


1.2.6 (2020-11-21)
------------------

* IMPROVE: commands to manage nested applications
* Added endpoint for checking token jwt
* Add an endpoint to retrieve one data from the model
* Add schema to limit results
* Added a handler for handling API errors


1.2.7 (2020-11-24)
------------------

* FIX: user checks in the test token endpoint
* NEW: support for creating your own app loader
* FIX: Make user roles optional
* FIX: `#49 <https://github.com/zemfrog/zemfrog/issues/49>`_

2.0.1 (2020-12-20)
------------------

* Refactoring app loaders
* IMPROVE: REST API, models & validators
* IMPROVE: added template checks
* IMPROVE: add password validator
* IMPROVE: Compatible with frontend nuxtjs
* NEW: add flask-cors extension

2.0.2 (2020-12-20)
------------------

* fix: missing flask-cors dependency

2.0.3 (2020-12-20)
------------------

* IMPROVE: clean up dependencies

3.0.1 (2020-12-20)
------------------

* add command secretkey
* Fix: varchar length
* Added db migration based on environment
* Stable release

4.0.1 (2021-03-04)
------------------

* IMPROVE: Move extensions to global
* NEW: add pre-commit tool
* IMPROVE: refactor json response
* Refactor Code: run pre-commit
* IMPROVE: Change 'SystemExit' to 'ValidationError'
* IMPROVE: Rename the api directory to apis
* NEW: add autoflake hook
* Changed the stable version status to BETA

4.0.2 (2021-03-05)
------------------

* FIX: response message in jwt & error handler boilerplate
* FIX: update zemfrog version in requirements.txt

4.0.3 (2021-03-17)
------------------

* Fix https://github.com/zemfrog/zemfrog/issues/87
* Add pre-commit to requirements-dev.txt

4.0.4 (2021-03-31)
------------------

* FIX: role & permission relation
* FIX: typo column name
* IMPROVE: split blueprint and task to global
* IMPROVE: split error handlers to global
* IMPROVE: set default blueprint to blank
* IMPROVE: Use schema from source rather than local proxy
* IMPROVE: Using the model name corresponding user input

4.0.5 (2021-04-01)
------------------

* FIX: Load the blueprint name
* FIX: unknown column
* NEW: added codecov workflow (testing)
* NEW: add default value to 'confirmed' column


5.0.1 (2021-04-10)
------------------

* Flask-smorest integration. Based on `#63 <https://github.com/zemfrog/zemfrog/issues/63>`_
* Refactor Code: added scaffolding
* FIX: use 'alt_response' instead of 'response' to wrap multiple responses.
* FIX: configuration to enable / disable OpenAPI
* IMPROVE: no longer supports to load main urls
* IMPROVE: Add a command description to the sub application
* IMPROVE: use 'subprocess.call' instead of 'os.system'
* Change the name of the password reset request template
* create pyup.io config file