All Projects → djaodjin → Djaodjin Saas

djaodjin / Djaodjin Saas

Licence: other
Django application for software-as-service and subscription businesses

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Djaodjin Saas

Pinax Stripe
a payments Django app for Stripe
Stars: ✭ 650 (+118.86%)
Mutual labels:  subscriptions, saas, stripe, django
Dj Stripe
Django + Stripe Made Easy
Stars: ✭ 1,022 (+244.11%)
Mutual labels:  subscriptions, stripe, django
pinax-stripe-light
a payments Django app for Stripe
Stars: ✭ 670 (+125.59%)
Mutual labels:  stripe, saas, subscriptions
Limestone
Boilerplate Rails 6 SaaS application with Webpack, Stimulus and Docker integration.
Stars: ✭ 191 (-35.69%)
Mutual labels:  saas, stripe
Memberprism2
open source alternative to memberstack / memberspace , but with both front and backend member-only content protection
Stars: ✭ 171 (-42.42%)
Mutual labels:  saas, stripe
Djaoapp
User login, billing, access control as part of a session proxy
Stars: ✭ 61 (-79.46%)
Mutual labels:  saas, django
Flasksaas
A great starting point to build your SaaS in Flask & Python, with Stripe subscription billing 🚀
Stars: ✭ 412 (+38.72%)
Mutual labels:  saas, stripe
Stripe Firebase Extensions
Repository of Firebase Extensions built by Stripe.
Stars: ✭ 133 (-55.22%)
Mutual labels:  subscriptions, stripe
Jetstream Cashier Billing Portal
Jetstream Cashier Billing Portal is a simple scaffolding billing portal to manage subscriptions, invoices and payment methods, built on top of Jetstream & Cashier Register.
Stars: ✭ 45 (-84.85%)
Mutual labels:  subscriptions, stripe
subscribie
Collect recurring payments online - subscription payments collection automation
Stars: ✭ 36 (-87.88%)
Mutual labels:  stripe, saas
SAAS-Starter-Kit-Pro
🚀A boilerplate for building Software-as-Service (SAAS) apps with Reactjs, and Nodejs
Stars: ✭ 313 (+5.39%)
Mutual labels:  stripe, saas
Invoice As A Service
💰 Simple invoicing service (REST API): from JSON to PDF
Stars: ✭ 106 (-64.31%)
Mutual labels:  saas, stripe
Parabol
Free online agile retrospective meeting tool
Stars: ✭ 1,145 (+285.52%)
Mutual labels:  saas, stripe
cashier-register
Cashier Register is a simple quota feature usage tracker for Laravel Cashier subscriptions.
Stars: ✭ 93 (-68.69%)
Mutual labels:  stripe, saas
netlify-stripe-subscriptions
An example of managing subscriptions with the Stripe Customer Portal and Netlify Identity.
Stars: ✭ 96 (-67.68%)
Mutual labels:  stripe, subscriptions
Firebase Subscription Payments
Example web client for the `firestore-stripe-subscriptions` Firebase Extension using Stripe Checkout and the Stripe Customer Portal.
Stars: ✭ 119 (-59.93%)
Mutual labels:  subscriptions, stripe
Django Ecommerce
Ecommerce website built with Django 2.2.3, Python 3.7.3, Stripe and AWS
Stars: ✭ 173 (-41.75%)
Mutual labels:  stripe, django
Api
🏁🛠️ SaaS backend & API framework based on @nestjs
Stars: ✭ 390 (+31.31%)
Mutual labels:  saas, stripe
AWS Stripe-SaaS-quickstart
🛍️ 🚀 AWS Software as a Service App with subscriptions using Stripe Quickstart
Stars: ✭ 30 (-89.9%)
Mutual labels:  stripe, saas
Flask-Stripe-MySQL-Bootstrapped
Flask template with microservices architecture. Fully integrated with Stripe 🚀
Stars: ✭ 124 (-58.25%)
Mutual labels:  stripe, saas

djaodjin-saas is a Django application that implements the logic to support subscription-based Software-as-a-Service businesses.

Major Features:

  • Separate billing profiles and authenticated users
  • Double entry book keeping ledger
  • Flexible security framework

Tested with

  • Python: 3.6, Django: 2.2 (LTS), Django Rest Framework: 3.11
  • Python: 3.6, Django: 3.0 (latest), Django Rest Framework: 3.11
  • Python: 2.7 (end-of-life), Django: 1.11, Django Rest Framework: 3.9.4

This project contains bare bone templates which are compatible with Django and Jinja2 template engines. To see djaodjin-saas in action as part of a full-fledged subscription-based session proxy, take a look at djaoapp.

Full documentation for the project is available at Read-the-Docs

Development

After cloning the repository, create a virtualenv environment and install the prerequisites:


    $ python -m venv .venv
    $ source .venv/bin/activate
    $ pip install -r testsite/requirements.txt

To use the testsite, you will need to add the payment processor keys (see Processor Backends) and Django secret key into a credentials file. Example with Stripe:


    $ cat ./credentials

    SECRET_KEY = "enough_random_data"
    STRIPE_PUB_KEY = "your_stripe_public_api_key"
    STRIPE_PRIV_KEY = "your_stripe_private_api_key"

It remains to create and populate the database with required objects.

$ python ./manage.py migrate --run-syncdb --noinput
$ python ./manage.py loaddata testsite/fixtures/initial_data.json
$ python ./manage.py createsuperuser

You can further generate a set of dummy data data to populate the site.

$ python ./manage.py load_test_transactions

Side note: If create your own fixtures file (ex: testsite/fixtures/test_data.json) and attempt to load them with a Django version before 2 while the Python executable was linked with a SQLite version after 3.25, you might stumble upon the well-known SQLite 3.26 breaks database migration ForeignKey constraint, leaving <table_name>__old in db schema bug. Your best bet is to use Django2+ or delete the migrations/ directory.

If all is well then, you are ready to run the server and browse the testsite.

$ python manage.py runserver

# Browse http://localhost:8000/

Implementation Notes

The latest versions of django-restframework (>=3.0) implement paginators disconnected from parameters in views (i.e. no more paginate_by). You will thus need to define PAGE_SIZE in your settings.py

$ diff testsite/settings.py
+REST_FRAMEWORK = {
+    'PAGE_SIZE': 25,
+    'DEFAULT_PAGINATION_CLASS':
+        'rest_framework.pagination.PageNumberPagination',
+}

This Django App does not send notification e-mails itself. All major updates that would result in a e-mail sent trigger signals though. It is straightforward to send e-mails on a signal trigger in the main Django project. We provide sample e-mail templates here in the saas/templates/notification/ directory.

Release Notes

0.9.3

  • migrates to Stripe PaymentIntent for SCA
  • adds balance due in checkout page
  • computes customers lifetime value (LTV) for a provider
  • reports error details when the payment processor has issues

previous release notes

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].