billing frontend for mariadb. setup as otb_billing for outsidethebox.top accounting. also involved with outsidethedb
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3.9 KiB

OTB Billing – Project State

Version: v0.3-dev
Status: Active Development
Backend: Flask (Python)
Database: MariaDB
Default Port: 5050
Install Location: ~/otb_billing


Overview

OTB Billing is a lightweight contractor-focused billing system designed to be:

  • self-hostable
  • deployable via installer
  • database-driven
  • portable across Linux servers
  • simple HTML frontend with strong backend logic

The system is intended to support both:

  1. client self-hosting installs
  2. managed hosted deployments under outsidethebox.top

Current Core Features

Client Management

  • create/edit clients
  • client code system
  • client contact details
  • client ledger link

Services

  • service code system
  • service descriptions
  • reusable services for invoices

Invoices

  • automatic invoice numbering (INV-####)
  • invoice creation
  • invoice editing
  • invoice locking when payments exist
  • issued / due dates
  • invoice status system

Statuses:

  • draft
  • pending
  • partial
  • paid
  • overdue
  • cancelled

Payments

  • record payments
  • payment confirmation
  • payment reversal
  • invoice payment tracking
  • remaining balance calculation

Ledger

  • client credit ledger
  • positive / zero / negative balance color indicators
  • manual credit entries

Invoice Rendering

  • HTML invoice view
  • printer friendly layout
  • invoice totals / remaining balance display
  • payment status badges

PDF Invoices

  • PDF generation via ReportLab
  • downloadable invoices
  • branded invoice header
  • tax number support
  • payment terms and footer support

Settings / Configuration System

Database-stored settings accessible at:

/settings

Configurable fields:

Business Identity

  • business name
  • slogan / tagline
  • business email
  • business phone
  • business address
  • website
  • business registration number

Tax Settings

  • tax label
  • tax rate
  • tax number
  • local country
  • apply tax only to local clients

Invoice Behavior

  • invoice footer
  • payment terms
  • default currency

SMTP / Email (prepared for future email invoices)

  • SMTP host
  • SMTP port
  • SMTP username
  • SMTP password
  • from email
  • from name
  • TLS / SSL flags

Architecture

Backend: Flask

Database: MariaDB using mysql-connector-python

PDF Engine: ReportLab

Dependencies defined in:

requirements.txt

Flask template system used for UI.


Installer Philosophy

OTB Billing is designed to support automated installs.

Target workflow:

fresh server → run installer → install python dependencies → install MariaDB → create schema → launch application

The goal is a single guided install path so non-expert Linux users can deploy it.

README.md will include:

  • config file explanation
  • installer instructions
  • deployment examples

Security Considerations

Advanced settings such as database credentials should remain outside the main UI and be configured through installer or config file.

SMTP credentials are stored in the settings table but are not yet used for sending email.


Planned Features

Near Term

Email invoices

  • attach generated PDF
  • send via configured SMTP

Invoice defaults

  • default currency
  • default tax rules

Business branding

  • configurable business logo
  • invoice header logo

Reports

  • outstanding invoices
  • revenue summaries
  • client account statements

Medium Term

Quotes / estimates Recurring invoices Invoice reminders Client portal

Long Term

Multi-currency handling Exchange rate support Accounting export (CSV / QuickBooks style) API access User authentication system Role permissions


Deployment Goals

OTB Billing should support:

Self-host installs
Managed hosting deployments
Multi-client environments

Target integration with:

outsidethebox.top hosting services.


Repository Discipline

Every version bump must:

  • update PROJECT_STATE.md
  • update README.md changelog
  • produce full version snapshot ZIP backup

Example:

otb_billing-v0.3.0.zip

This ensures reliable rollback and historical tracking.


End of file.