Dead man switch activated. Good luck everyone, I wish you the best. - BDFL new file: .gitignore new file: MANIFEST.in new file: Makefile new file: README.rst new file: development.ini new file: journal.rst new file: make_post_sell/__init__.py new file: make_post_sell/config_jinja2.py new file: make_post_sell/lib/__init__.py new file: make_post_sell/lib/mail.py new file: make_post_sell/lib/mail_messages.py new file: make_post_sell/lib/render.py new file: make_post_sell/models/__init__.py new file: make_post_sell/models/cart.py new file: make_post_sell/models/cart_coupon.py new file: make_post_sell/models/coupon.py new file: make_post_sell/models/coupon_redemption.py new file: make_post_sell/models/invoice.py new file: make_post_sell/models/market.py new file: make_post_sell/models/meta.py new file: make_post_sell/models/price.py new file: make_post_sell/models/product.py new file: make_post_sell/models/shop.py new file: make_post_sell/models/shop_search_request.py new file: make_post_sell/models/stripe_user_shop.py new file: make_post_sell/models/user.py new file: make_post_sell/models/user_product.py new file: make_post_sell/models/user_shop.py new file: make_post_sell/request_methods.py new file: make_post_sell/routes.py new file: make_post_sell/scripts/__init__.py new file: make_post_sell/scripts/alembic/README new file: make_post_sell/scripts/alembic/env.py new file: make_post_sell/scripts/alembic/script.py.mako new file: make_post_sell/scripts/alembic/versions/15751f5d7a03_add_active_cart_total_in_cents_to_user_.py new file: make_post_sell/scripts/alembic/versions/24662905655f_create_new_active_shop_id_column_on_.py new file: make_post_sell/scripts/alembic/versions/3e1e70bfe89d_google_analytics_id.py new file: make_post_sell/scripts/alembic/versions/4d9da43b0e86_product_visibility_column.py new file: make_post_sell/scripts/alembic/versions/5c40dfb56179_shop_ribbon_columns.py new file: make_post_sell/scripts/alembic/versions/6da97f2f913f_add_updated_timestamp_to_cart.py new file: make_post_sell/scripts/alembic/versions/96f851cbab01_terms_and_privacy.py new file: make_post_sell/scripts/alembic/versions/ab7338eaedf1_add_price_in_cents_column.py new file: make_post_sell/scripts/alembic/versions/af28cc35ed6f_product_bundles.py new file: make_post_sell/scripts/alembic/versions/b0d5604d9255_add_active_cart_count_to_user_table.py new file: make_post_sell/scripts/alembic/versions/bfc4195a7f56_product_is_sellable_coluumn.py new file: make_post_sell/scripts/alembic/versions/c4d5566ec87d_coupon_stackable_and_couponredemption.py new file: make_post_sell/scripts/alembic/versions/e12bbe39d87e_cart_coupon_table.py new file: make_post_sell/scripts/alembic/versions/eadd0d69e133_shop_ribbon_text_color.py new file: make_post_sell/scripts/alembic/versions/f3aa57777025_coupon_table.py new file: make_post_sell/scripts/alembic/versions/f882f2255cd1_add_stripe_secret_and_public_key_to_shop.py new file: make_post_sell/scripts/alembic/versions/fd9f7e2f2b78_user_full_name.py new file: make_post_sell/scripts/initialize_db.py new file: make_post_sell/scripts/pshell.py new file: make_post_sell/static/css/alerts.css new file: make_post_sell/static/css/common.css new file: make_post_sell/static/css/lib.css new file: make_post_sell/static/css/mps.css new file: make_post_sell/static/favicon.ico new file: make_post_sell/static/js/custom.js new file: make_post_sell/static/js/jquery-3.4.1.min.js new file: make_post_sell/static/js/jquery.min.js new file: make_post_sell/static/makepostsell-3.png new file: make_post_sell/static/makepostsell.png new file: make_post_sell/static/mps.png new file: make_post_sell/templates/actions_new.j2 new file: make_post_sell/templates/actions_view.j2 new file: make_post_sell/templates/base.j2 new file: make_post_sell/templates/billing.j2 new file: make_post_sell/templates/cart.j2 new file: make_post_sell/templates/cart_checkout.j2 new file: make_post_sell/templates/carts.j2 new file: make_post_sell/templates/content.j2 new file: make_post_sell/templates/content_new.j2 new file: make_post_sell/templates/coupon.j2 new file: make_post_sell/templates/coupon_new.j2 new file: make_post_sell/templates/coupons.j2 new file: make_post_sell/templates/home.j2 new file: make_post_sell/templates/join-or-log-in.j2 new file: make_post_sell/templates/markup_editor.j2 new file: make_post_sell/templates/markup_renderer.j2 new file: make_post_sell/templates/product.j2 new file: make_post_sell/templates/product_edit.j2 new file: make_post_sell/templates/product_new.j2 new file: make_post_sell/templates/products.j2 new file: make_post_sell/templates/shop.j2 new file: make_post_sell/templates/shop_about.j2 new file: make_post_sell/templates/shop_new.j2 new file: make_post_sell/templates/shop_products.j2 new file: make_post_sell/templates/shop_settings.j2 new file: make_post_sell/templates/shops.j2 new file: make_post_sell/templates/snippets/csrf.j2 new file: make_post_sell/templates/snippets/flash-alerts.j2 new file: make_post_sell/templates/snippets/google-analytics.j2 new file: make_post_sell/templates/snippets/optional-javascript.j2 new file: make_post_sell/templates/snippets/ribbon.j2 new file: make_post_sell/templates/snippets/search.j2 new file: make_post_sell/templates/snippets/stripe.j2 new file: make_post_sell/templates/update-card.j2 new file: make_post_sell/templates/user_settings.j2 new file: make_post_sell/tests/__init__.py new file: make_post_sell/tests/test_functional.py new file: make_post_sell/tests/test_models.py new file: make_post_sell/views/__init__.py new file: make_post_sell/views/actions.py new file: make_post_sell/views/authentication.py new file: make_post_sell/views/billing.py new file: make_post_sell/views/cart.py new file: make_post_sell/views/content.py new file: make_post_sell/views/coupon.py new file: make_post_sell/views/misc.py new file: make_post_sell/views/product.py new file: make_post_sell/views/shop.py new file: make_post_sell/views/user.py new file: pytest.ini new file: requirements-dev.txt new file: requirements-prod.txt new file: requirements-test.txt new file: requirements.py3.txt new file: requirements.txt new file: setup.py new file: test.ini
100 lines
2.1 KiB
ReStructuredText
100 lines
2.1 KiB
ReStructuredText
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
|