initial commit
This commit is contained in:
commit
95b8af2360
15 changed files with 1519 additions and 0 deletions
93
README.md
Normal file
93
README.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
# Castle Accounting Extension for LNbits
|
||||
|
||||
A full-featured double-entry accounting system for collective projects, integrated with LNbits Lightning payments.
|
||||
|
||||
## Overview
|
||||
|
||||
Castle Accounting enables collectives like co-living spaces, makerspaces, and community projects to:
|
||||
- Track expenses and revenue with proper accounting
|
||||
- Manage individual member balances
|
||||
- Record contributions as equity or reimbursable expenses
|
||||
- Track accounts receivable (what members owe)
|
||||
- Generate Lightning invoices for settlements
|
||||
|
||||
## Installation
|
||||
|
||||
This extension is designed to be installed in the `lnbits/extensions/` directory.
|
||||
|
||||
```bash
|
||||
cd lnbits/extensions/
|
||||
# Copy or clone the castle directory here
|
||||
```
|
||||
|
||||
Enable the extension through the LNbits admin interface or by adding it to your configuration.
|
||||
|
||||
## Usage
|
||||
|
||||
### For Members
|
||||
|
||||
1. **Add an Expense**: Record money you spent on behalf of the collective
|
||||
- Choose "Liability" if you want reimbursement
|
||||
- Choose "Equity" if it's a contribution
|
||||
|
||||
2. **View Your Balance**: See if the Castle owes you money or vice versa
|
||||
|
||||
3. **Pay Outstanding Balance**: Generate a Lightning invoice to settle what you owe
|
||||
|
||||
### For Admins
|
||||
|
||||
1. **Create Accounts Receivable**: Record when someone owes the collective money
|
||||
|
||||
2. **Record Revenue**: Track income received by the collective
|
||||
|
||||
3. **View All Transactions**: See complete accounting history
|
||||
|
||||
4. **Make Payments**: Record payments to members
|
||||
|
||||
## Architecture
|
||||
|
||||
### Data Models
|
||||
|
||||
- **Account**: Individual accounts in the chart of accounts
|
||||
- **JournalEntry**: Transaction header with description and date
|
||||
- **EntryLine**: Individual debit/credit lines (always balanced)
|
||||
|
||||
### Account Types
|
||||
|
||||
- **Assets**: Things the Castle owns (Cash, Bank, Accounts Receivable)
|
||||
- **Liabilities**: What the Castle owes (Accounts Payable to members)
|
||||
- **Equity**: Member contributions and retained earnings
|
||||
- **Revenue**: Income streams
|
||||
- **Expenses**: Operating costs
|
||||
|
||||
### Database Schema
|
||||
|
||||
The extension creates three tables:
|
||||
- `castle.accounts` - Chart of accounts
|
||||
- `castle.journal_entries` - Transaction headers
|
||||
- `castle.entry_lines` - Debit/credit lines
|
||||
|
||||
## API Reference
|
||||
|
||||
See [description.md](description.md) for full API documentation.
|
||||
|
||||
## Development
|
||||
|
||||
To modify this extension:
|
||||
|
||||
1. Edit models in `models.py`
|
||||
2. Add database migrations in `migrations.py`
|
||||
3. Implement business logic in `crud.py`
|
||||
4. Create API endpoints in `views_api.py`
|
||||
5. Update UI in `templates/castle/index.html`
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions welcome! Please ensure:
|
||||
- Journal entries always balance
|
||||
- User permissions are properly checked
|
||||
- Database transactions are atomic
|
||||
|
||||
## License
|
||||
|
||||
MIT License - feel free to use and modify for your collective!
|
||||
Loading…
Add table
Add a link
Reference in a new issue