lorikeet

A simple, generic, API-only shopping cart framework for Django.

https://github.com/daisylb/lorikeet

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

A simple, generic, API-only shopping cart framework for Django.

Basic Info
  • Host: GitHub
  • Owner: daisylb
  • License: mit
  • Language: Python
  • Default Branch: master
  • Size: 338 KB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 0
  • Open Issues: 24
  • Releases: 0
Created over 6 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.rst

Lorikeet
========

⚠️ **Note:** Lorikeet is a work in progress. It may change at any time,
and you shouldn't use it in production yet.

Lorikeet is a simple, generic, API-only shopping cart framework for
Django.

Lorikeet currently supports Django 2.2 and 3.0 on Python 3.6+. New versions of Lorikeet will support `Django versions that currently have extended support `_.

Why use Lorikeet?
-----------------

E-commerce apps are divided into two types: simple ones that work well so long as what you're selling is simple, and complex ones that try to be all things to all people by way of a maze of checkboxes and dropdowns.

**Lorikeet isn't an e-commerce app; it's a shopping cart framework.** With Lorikeet, you define models for line items (the things that go in your cart), delivery addresses and payment methods yourself. For complex shops, this means you can model exactly the functionality you need without fighting the system. For simple shops, this is a simple process that requires way less code than you'd expect, and gives you a system without unnecessary bloat, but with room to grow.

**Lorikeet only cares about the cart itself**; everything outside of that, including your navigation and product pages, is directly under your control, so you're free to use a simple ``ListView`` and ``DetailView``, Wagtail, Mezzanine, Django CMS, or something totally bespoke. There's not a single line of HTML or CSS in Lorikeet's codebase either, so Lorikeet gives you total control over your visuals too.

Lorikeet line items, delivery addresses and payment methods are designed to be orthogonal, so you can package them as reusable apps and share them internally between sites in your company, or with the world as open-source packages. In fact, **Lorikeet already includes an optional Stripe payment method plugin**, totally separate from the rest of the codebase and written against the same public API as your own apps.

Because most modern payment providers require JavaScript anyway, **Lorikeet is API-only**. This lets you build a fast, frictionless shopping experience where users can add to and change their shopping carts without the entire page refreshing each time, and Lorikeet's API is designed to allow logged-in repeat users to check out in a single click.


Why use something else?
-----------------------

- **Lorikeet isn't turnkey.** For simple sites, you won't need to write much Python code; for complex ones, the time it takes to get up and running will probably be comparable to the time it takes to figure out how to bend e-commerce apps to your will. But the total control over the frontend that Lorikeet gives you means you'll need to write a fair bit of HTML, CSS and JavaScript to get up and running, so if you need to go from zero to shop quickly, it's best to look somewhere else.
- **Lorikeet sites will require JavaScript.** Lorikeet doesn't provide regular HTML-form-based views for adding items to the cart and checking out; if you need this, Lorikeet isn't for you.

Owner

  • Name: Daisy Leigh Brenecki
  • Login: daisylb
  • Kind: user
  • Location: Naarm, Wurundjeri land, Kulin Nation / Melbourne, Australia
  • Company: @pyconau & @djangocon AU

Full snack developer.

GitHub Events

Total
Last Year

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 182
  • Total Committers: 6
  • Avg Commits per committer: 30.333
  • Development Distribution Score (DDS): 0.104
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Leigh Brenecki l****h@b****u 163
Matt m****o@g****m 7
dependabot-preview[bot] 2****] 5
Matt Magin m****t@m****u 3
Leigh Brenecki l@l****u 2
Leigh Brenecki l****i@c****u 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 5
  • Total pull requests: 112
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Total issue authors: 3
  • Total pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.85
  • Merged pull requests: 8
  • Bot issues: 3
  • Bot pull requests: 109
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dependabot-preview[bot] (3)
  • nstephenh (1)
  • AzMoo (1)
Pull Request Authors
  • dependabot[bot] (58)
  • dependabot-preview[bot] (49)
  • AzMoo (2)
  • daisylb (1)
  • renovate[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (107) python (57) security (3) javascript (1)

Dependencies

package-lock.json npm
  • 209 dependencies
package.json npm
  • babel-cli ^6.18.0 development
  • babel-preset-es2015 ^6.18.0 development
  • babel-preset-react ^6.16.0 development
poetry.lock pypi
  • alabaster 0.7.12 develop
  • aspy.yaml 1.3.0 develop
  • atomicwrites 1.3.0 develop
  • attrs 19.3.0 develop
  • babel 2.7.0 develop
  • cfgv 2.0.1 develop
  • colorama 0.4.3 develop
  • docutils 0.15.2 develop
  • factory-boy 2.12.0 develop
  • faker 3.0.0 develop
  • identify 1.4.9 develop
  • imagesize 1.2.0 develop
  • importlib-metadata 1.3.0 develop
  • importlib-resources 1.0.2 develop
  • jinja2 2.10.3 develop
  • markupsafe 1.1.1 develop
  • more-itertools 8.0.2 develop
  • nodeenv 1.3.3 develop
  • packaging 19.2 develop
  • pathlib2 2.3.5 develop
  • pluggy 0.13.1 develop
  • pre-commit 1.20.0 develop
  • py 1.8.1 develop
  • pygments 2.5.2 develop
  • pyparsing 2.4.6 develop
  • pytest 5.4.3 develop
  • pytest-django 3.7.0 develop
  • pytest-pythonpath 0.7.3 develop
  • python-dateutil 2.8.1 develop
  • pyyaml 5.2 develop
  • six 1.13.0 develop
  • snowballstemmer 2.0.0 develop
  • sphinx 1.5.6 develop
  • sphinx-js 1.3.1 develop
  • sphinx-rtd-theme 0.1.9 develop
  • sphinxcontrib-httpdomain 1.7.0 develop
  • text-unidecode 1.3 develop
  • toml 0.10.0 develop
  • virtualenv 16.7.9 develop
  • wcwidth 0.1.7 develop
  • zipp 0.6.0 develop
  • cachetools 3.1.1
  • certifi 2019.11.28
  • chardet 3.0.4
  • cssselect 1.1.0
  • cssutils 1.0.2
  • django 2.2.10
  • django-model-utils 4.0.0
  • djangorestframework 3.11.0
  • idna 2.8
  • lxml 4.4.2
  • premailer 3.7.0
  • pytz 2019.3
  • requests 2.23.0
  • sqlparse 0.3.0
  • stripe 2.41.0
  • urllib3 1.22
pyproject.toml pypi
  • factory-boy ^2.11 develop
  • pre-commit ^1.20.0 develop
  • pytest ^5.4.3 develop
  • pytest-django ^3.7.0 develop
  • pytest-pythonpath ^0.7.3 develop
  • sphinx ~1.5.1 develop
  • sphinx-js ~1.3 develop
  • sphinx-rtd-theme ^0.1.9 develop
  • sphinxcontrib_httpdomain ^1.5.0 develop
  • django >=2.2,<4
  • django-model-utils ^4.0.0
  • djangorestframework ^3.10
  • premailer ^3.6
  • python >=3.5
  • requests ^2.21
  • stripe ^2.41
.github/workflows/tests.yml actions
  • actions/cache v1 composite
  • actions/checkout v1 composite
  • actions/setup-python v1 composite
  • excitedleigh/setup-nox 0.1.0 composite
  • pre-commit/action v1.0.0 composite