Find a file
2022-05-26 18:03:42 -04:00
make_post_sell try it out. 2022-04-29 11:54:57 -04:00
.gitignore configure dkim_signing_algorithm 2022-05-26 16:47:59 -04:00
.gitlab-ci.yml trying to fix tarbal local of build 2022-05-25 12:48:57 -04:00
development.ini configure dkim_signing_algorithm 2022-05-26 16:47:59 -04:00
journal.rst modified: journal.rst 2022-05-26 18:03:42 -04:00
Makefile modified: Makefile 2022-05-25 18:08:20 -04:00
MANIFEST.in Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
pytest.ini Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
README.rst Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
requirements-dev.txt Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
requirements-prod.txt Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
requirements-test.txt Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
requirements.py3.txt Time to open the sauce : ) 2021-12-31 21:39:40 -05:00
requirements.txt pynacl 2022-05-26 17:01:13 -04:00
setup.py fix duplicate parameter key 2022-01-10 15:09:54 -05:00
test.ini Time to open the sauce : ) 2021-12-31 21:39:40 -05:00

Make Post Sell
==============

The `Make Post Sell <https://www.makepostsell.com>`_ monolith platform service.


Getting Started
---------------

Clone this repo and change your working directory to the checkout.

Create a Python virtual environment and install project dependencies:

.. code-block:: bash

 make dev

Load schema and default data into the database using a script,
we currently use sqlite3 as a development and test database:

.. code-block:: bash

 make init_db config=development.ini

Run a web application server with the project loaded:

.. code-block:: bash

 make serve

Open a 2nd shell and run a test SMTP server for intercepting OTP login uri's:

.. code-block:: bash

 make smtp

In a web browser navagate to http://127.0.0.1:6501/ and you should see the app.


Running Tests
-------------

We currently use `pytest`:

.. code-block:: bash

 make test


SQL Migrations
===============

If your deployment is brand new, you don't need to run any migrations.
You should however run this to stamp the database as ready:

.. code-block:: bash

 alembic -c development.ini stamp head

Otherwise, it should be safe to run this at anytime to catch your database up:

.. code-block:: bash

 alembic -c development.ini upgrade head

To look at the current revision and the history run these:

.. code-block:: bash

 alembic -c development.ini history
 alembic -c development.ini current

If you ever want to cut a new migration script, you can run this:

.. code-block:: bash

 alembic -c development.ini revision -m "Added email_id column to User table."

Then you can edit / modify the generated ``.py`` file with your changes.

You can also autogenerate a new migration script using `--autogenerate`.
Alembic will prepare a migration script by comparing the state of the
database with the state of the model:

.. code-block:: bash

  alembic -c development.ini revision --autogenerate -m "autogenerated indicies."

You should review the recommended migration script before `upgrade`.


misc
====

You may source the new Python virtual environment during development:

.. code-block:: bash

 # source env/bin/activate.fish
 . env/bin/activate