Djaoapp
Web/API Gateway with user profiles, billing, and subscription-based access control
Install / Use
/learn @djaodjin/DjaoappREADME
DjaoDjin subscriber session proxy
DjaoApp brings fully-featured profile, billing and role-based access control pages so you can start building your SaaS product faster. To learn more visit DjaoDjin's Website or browse the project documentation on Read-the-Docs.
DjaoApp is built on Django, Vue.js, Bootstrap frameworks and many more Open Source projects. Thank you for the support!
<p align="center"> <img src="https://static.djangoproject.com/img/logos/django-logo-positive.png" height="75"> <img src="https://vuejs.org/images/logo.png" height="75"> <img src="https://getbootstrap.com/docs/4.3/assets/brand/bootstrap-solid.svg" height="75"> </p>If you are looking to update the client front-end, you can browse through the API documentation and theme templates documentation.
If you are looking to add features, this project integrates
- djaodjin-signup for authentication pages and APIs
- djaodjin-saas for subscription-based payment pages and APIs
- djaodjin-rules for role-based access control and HTTP request forwarding
- djaodjin-deployutils for encoding/decoding sessions
- djaodjin-extended-templates for live editing of theme templates
Tested with
- Python: 3.10, Django: 3.2 (LTS)
Install
First you will need to create a workspace environment, download the 3rd party vendor prerequisite packages and build the static assets.
DjaoApp transitively depends on multiple native libraries that could or could
not be straightforward to install on your Operating System. If you have trouble
with the pip install -r requirements-native.txt command, take a look at
installation quirks
in the documentation.
At this point, all the 3rd party vendor prerequisite packages (Python and Javascript) have been downloaded and installed in the environment. You now need to add your STRIPE keys to the configuration file (i.e. installTop/etc/djaoapp/credentials).
<pre><code> $ diff -u <em>installTop</em>/etc/djaoapp/credentials # Authentication with payment provider -STRIPE_CLIENT_ID = "" -STRIPE_PUB_KEY = "" -STRIPE_PRIV_KEY = "" +STRIPE_CLIENT_ID = "<em>your-stripe-client-id</em>" +STRIPE_PUB_KEY = "<em>your-stripe-production-public-key</em>" +STRIPE_PRIV_KEY = "<em>your-stripe-production-private-key</em>" # Authentication with payment provider (test keys) -STRIPE_TEST_CLIENT_ID = "" -STRIPE_TEST_PUB_KEY = "" -STRIPE_TEST_PRIV_KEY = "" +STRIPE_TEST_CLIENT_ID = "<em>your-stripe-client-id</em>" +STRIPE_TEST_PUB_KEY = "<em>your-stripe-test-public-key</em>" +STRIPE_TEST_PRIV_KEY = "<em>your-stripe-test-private-key</em>" </code></pre>Then create the database, and start the built-in webserver
$ python manage.py migrate --run-syncdb
$ python manage.py createsuperuser
$ python manage.py runserver
Development
You will want to toggle DEBUG on in the site.conf file.
Templates Search Path
When a rules.App exists, templates will be first searched for in
templates/project_name, then in templates/project_repo, then
the default will be used.
All CSS present in the default templates must be declared which ever base.html is included.
Release Notes
- Sep 6th 2023 Support on Python2 was officially ended on Jan 1st 2020. As of Sep 6th 2023, we no longer test this project for compatibillity with Py2.7.
See release notes and roadmap.
Related Skills
gh-issues
347.0kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
347.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
347.0kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
