Skip to content

csa-admin-org/csa-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,594 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSA/ACP/Solawi Admin

CI

CSA/ACP/Solawi Admin is a web application to manage Community Supported Agriculture organizations:

  • CSA (Community Supported Agriculture)
  • ACP (Agriculture Contractuelle de Proximité)
  • Solawi (Solidarische Landwirtschaft)

Learn more on csa-admin.org.

Features

  • Member management (status, contact information, etc.)
  • Membership management (basket size, depot location, quantity, delivery cycle, etc.)
  • Basket complements (delivery frequency, quantity, etc.)
  • Online grocery store for additional product orders
  • Advanced delivery cycle management (every two weeks, winter/summer, etc.)
  • Basket content management (harvest-based quantity calculations, price monitoring, etc.)
  • Bidding rounds for solidarity-based basket pricing (member pledges with min/max bounds)
  • Automatic invoicing:
    • memberships
    • membership shares / annual fees
    • invoice dispatch with QR code and SEPA reference numbers
    • automatic payment statement import from bank accounts (EBICS 3.0/H005/BTF, BAS, bunq)
    • overdue notices
  • Activity participation management with member registration forms
  • Transactional email and built-in newsletter system
  • Multilingual support (en, fr, de, it, nl)

Need a demo or a specific feature? Contact me.

Organizations

This application is currently used by more than 30 organizations in Switzerland, Germany, and the Netherlands, and manages more than 140,000 basket deliveries per year.

Technical overview

  • Built with Ruby on Rails
  • Multi-tenant architecture:
    • tenant resolved from the configured request host
    • one isolated SQLite database per tenant
  • Asynchronous jobs handled by Solid Queue and Active Job (SQLite-backed)
  • Transactional emails and newsletters sent via Postmark
  • Tenant-local bank connections for automatic payment imports and EBICS 3.0/H005/BTF uploads; see docs/bank_connections.md for manual console setup

Getting started

Development requirements are managed with Mise 2026.7 or newer. Local development uses puma-dev over HTTPS.

  1. Clone the repository.

  2. Install and activate Mise, then install and configure puma-dev for your system.

  3. Trust the project configuration and bootstrap the application:

    mise trust
    mise bootstrap

    This installs libvips and Poppler, the Ruby, Node, and Aube versions declared in mise.toml, then runs bin/setup --skip-server. On Intel macOS, install libvips and Poppler through Homebrew first because Mise's Brew bootstrap supports Apple Silicon only.

  4. Update the generated config/tenant.yml with your admin and member hostnames.

  5. From the repository directory, link the configured base domain to puma-dev. For the sample my-domain.org configuration:

    puma-dev link -n my-domain
  6. Open the configured admin_host or members_host, replacing its public top-level domain with .test. For example:

    Use the configured host rather than deriving it from the tenant name: host labels and domains vary between organizations. Admin and member portals have separate authentication contexts. The acme tenant is test-only and is not available for local browser access.

  7. Sign in through the selected tenant's local admin host with an admin email for that tenant.

Development

Useful commands:

  • Run all tests: bin/rails test:all
  • Check linting: bin/rails lint:check
  • Auto-fix linting issues: bin/rails lint:autocorrect
  • Run final validation: bin/ci

Contributing

Contributions are welcome.

Before starting substantial work (new feature, larger refactor), please contact me first so we can align on scope and implementation.

For smaller fixes and improvements, feel free to open a pull request.

Support

For demos, support, or custom feature requests, contact me.

License

CSA/ACP/Solawi Admin is released under the O’Saasy License.

About

Web application to manage CSA (Community Supported Agriculture), ACP (Agriculture Contractuelle de Proximité) or Solawi (Solidarische Landwirtschaft) organizations.

Topics

Resources

License

Stars

78 stars

Watchers

3 watching

Forks

Contributors