|
6 | 6 |
|
7 | 7 | [](https://github.com/csa-admin-org/csa-admin/actions/workflows/tests.yml) [](https://github.com/csa-admin-org/csa-admin/actions/workflows/security.yml) |
8 | 8 |
|
9 | | -Web application to manage CSA (Community Supported Agriculture), ACP (Agriculture Contractuelle de Proximité), or Solawi (Solidarische Landwirtschaft) organizations. |
| 9 | +CSA/ACP/Solawi Admin is a web application to manage Community Supported Agriculture organizations: |
| 10 | +- **CSA** (Community Supported Agriculture) |
| 11 | +- **ACP** (Agriculture Contractuelle de Proximité) |
| 12 | +- **Solawi** (Solidarische Landwirtschaft) |
10 | 13 |
|
11 | 14 | Learn more on [csa-admin.org](https://csa-admin.org). |
12 | 15 |
|
13 | 16 | ## Features |
14 | 17 |
|
15 | | -Functions currently supported include: |
16 | | - |
17 | 18 | - Member management (status, contact information, etc.) |
18 | 19 | - Membership management (basket size type, depot location, quantity, deliveries, etc.) |
19 | 20 | - Basket complements (delivery frequency, quantity, etc.) |
20 | | -- Online grocery store to allow members to order additional products |
| 21 | +- Online grocery store for additional product orders |
21 | 22 | - Advanced delivery cycle management (every two weeks, winter/summer, etc.) |
22 | | -- Basket content management (calculation of quantities according to harvests, price monitoring, etc.) |
23 | | -- Automatic invoicing of memberships, creation and dispatch of invoices with reference numbers (QR-Code), automatic payment statements import from bank account (EBICS), overdue notice, etc. |
24 | | -- Automatic invoicing of membership shares or annual fees |
25 | | -- Activity participation management, with registration form for your members |
| 23 | +- Basket content management (harvest-based quantity calculations, price monitoring, etc.) |
| 24 | +- Bidding rounds for solidarity-based basket pricing (member pledges with min/max bounds) |
| 25 | +- Automatic invoicing: |
| 26 | + - memberships |
| 27 | + - membership shares / annual fees |
| 28 | + - invoice dispatch with reference numbers (QR-Code, SEPA) |
| 29 | + - automatic payment statement import from bank account (EBICS) |
| 30 | + - overdue notices |
| 31 | +- Activity participation management with member registration forms |
26 | 32 | - Advanced email and built-in newsletters system |
27 | | -- Multi-language support (English/French/German/Italian) |
28 | | -- And more... please [contact me](mailto:info@csa-admin.org) for a demo. |
| 33 | +- Multi-language support (**en, fr, de, it, nl**) |
29 | 34 |
|
30 | | -Other features can be added as required, please [contact me](mailto:info@csa-admin.org) for more information. |
| 35 | +Need a demo or a specific feature? [Contact me](mailto:info@csa-admin.org). |
31 | 36 |
|
32 | 37 | ## Organizations |
33 | 38 |
|
34 | | -This application is currently used by [more than 30 organizations](https://csa-admin.org/#organizations) in Switzerland and Germany, and manages more than 100,000 basket deliveries per year. |
| 39 | +This application is currently used by [more than 30 organizations](https://csa-admin.org/#organizations) in Switzerland, Germany, and the Netherlands, and manages more than 140,000 basket deliveries per year. |
35 | 40 |
|
36 | | -## Technical details |
| 41 | +## Technical overview |
37 | 42 |
|
38 | | -- This application is built with Ruby on Rails and uses SQLite as databases. |
39 | | -- Asynchronous jobs are handled by SolidQueue/ActiveJob and are backed by SQLite. |
40 | | -- Transactional emails and newsletters are sent using the Postmark service. |
| 43 | +- Built with Ruby on Rails |
| 44 | +- Multi-tenant architecture: |
| 45 | + - tenant resolved from request subdomain |
| 46 | + - one isolated SQLite database per tenant |
| 47 | +- Asynchronous jobs handled by SolidQueue/ActiveJob (SQLite-backed) |
| 48 | +- Transactional emails and newsletters sent via Postmark |
41 | 49 |
|
42 | 50 | ## Getting started |
43 | 51 |
|
44 | | -- Clone the repository locally |
45 | | -- Copy `config/tenant.yml.example` to `config/tenant.yml` and update your admin and members hostnames |
46 | | -- Install dependencies, prepare and seed the database: `bin/setup` |
47 | | -- Set up local subdomains (I recommend [puma-dev](https://github.com/puma/puma-dev)) to access [admin.my-domain.test](https://admin.my-domain.test) and [members.my-domain.test](https://members.my-domain.test) |
48 | | -- Login to [the admin](https://admin.my-domain.test) with your email (e.g. `admin@my-domain.org`) |
| 52 | +1. Clone the repository |
| 53 | +2. Copy `config/tenant.yml.example` to `config/tenant.yml` and update your admin/member hostnames |
| 54 | +3. Install dependencies, prepare and seed databases: |
49 | 55 |
|
50 | | -## Development and support |
| 56 | + `bin/setup` |
51 | 57 |
|
52 | | -- Thibaud Guillaume-Gentil ([info@csa-admin.org](mailto:info@csa-admin.org)) |
| 58 | +4. Set up local subdomains (recommended: [puma-dev](https://github.com/puma/puma-dev)) to access: |
| 59 | + - [admin.my-domain.test](https://admin.my-domain.test) |
| 60 | + - [members.my-domain.test](https://members.my-domain.test) |
| 61 | + |
| 62 | +5. Sign in to [the admin](https://admin.my-domain.test) with your email (for example `admin@my-domain.test`) |
53 | 63 |
|
54 | | -Don't hesitate to [contact me](mailto:info@csa-admin.org) for a demo or more information. |
| 64 | +## Development |
| 65 | + |
| 66 | +Useful commands: |
| 67 | + |
| 68 | +- Run all tests: `bin/rails test:all` |
| 69 | +- Check linting: `bin/rails lint:check` |
| 70 | +- Auto-fix linting issues: `bin/rails lint:autocorrect` |
55 | 71 |
|
56 | 72 | ## Contributing |
57 | 73 |
|
58 | | -I'm encouraging you to contribute to this project. Please [contact me](mailto:info@csa-admin.org) before starting to work on a feature or a bug fix. |
| 74 | +Contributions are welcome. |
| 75 | + |
| 76 | +Before starting substantial work (new feature, larger refactor), please [contact me](mailto:info@csa-admin.org) first so we can align on scope and implementation. |
| 77 | + |
| 78 | +For smaller fixes and improvements, feel free to open a pull request. |
| 79 | + |
| 80 | +## Support |
| 81 | + |
| 82 | +- Thibaud Guillaume-Gentil ([info@csa-admin.org](mailto:info@csa-admin.org)) |
| 83 | + |
| 84 | +For demos, support, or custom feature requests, [contact me](mailto:info@csa-admin.org). |
59 | 85 |
|
60 | 86 | ## License |
61 | 87 |
|
|
0 commit comments