A complete invoice management tool built with PHP, MySQL, TailwindCSS, and Alpine.js.
- Authentication System - Secure login/logout with session management
- Dashboard - Statistics and recent invoices overview
- Invoice Management - Create, edit, delete invoices with line items
- Payment Tracking - Record payment for invoice by different payment method
- Client Management - Add, edit, delete clients with search and pagination
- Currency Management - Multi-currency support with exchange rates
- Company Settings - Manage company profile and logo
- Banking Details - Banking settings page with tabbed interface for USD, GBP, and INR
- Dynamic Line Items - Add/remove items with live total calculations (Alpine.js)
- PDF Export - Generate professional PDF invoices with DOMPDF
- Dark Mode - Toggle between light and dark themes
- Responsive Design - Works on desktop, tablet, and mobile
- CSV Export - Export client list to CSV
- PHP 7.4 or higher
- MySQL 5.7 or higher
- Composer
- Apache/Nginx with mod_rewrite enabled
The project is located at /var/www/html/invoice-management/
cd /var/www/html/invoice-management
composer installCreate a MySQL database and import the schema:
mysql -u root -pCREATE DATABASE invoice_management;
exit;mysql -u root -p invoice_management < db/schema.sqlEdit db/config.php and update your database credentials:
define('DB_HOST', 'localhost');
define('DB_NAME', 'invoice_management');
define('DB_USER', 'root');
define('DB_PASS', 'your_password');chmod -R 755 /var/www/html/invoice-management
chmod -R 777 /var/www/html/invoice-management/public/assets/uploadscd /var/www/html/invoice-management
php -S localhost:8000 -t publicOr configure Apache/Nginx to point to the public directory.
Open your browser and navigate to:
- URL:
http://localhost:8000 - Username:
admin - Password:
admin123
- Navigate to Invoices > Create Invoice
- Select a client and currency
- Add line items (click "Add Item" to add more rows)
- Enter quantity, price, and tax percentage
- Totals calculate automatically
- Add notes if needed
- Click "Create Invoice"
- Go to Invoices list
- Click PDF next to any invoice
- The PDF will download automatically
- Navigate to Clients
- Use the search bar to find clients
- Click Add Client to create new
- Click Edit or Delete to modify
- Click Export CSV to download all clients
- Navigate to Currencies
- Click Add Currency to create new
- Set exchange rates relative to base currency
- Click Set Default to change default currency
- Navigate to Settings
- Upload company logo
- Update company information
- Click Save Settings
- Click Banking Details in the sidebar
- Configure banking info for USD, GBP, and INR
- Click Save Banking Details
- Check database credentials in
db/config.php - Ensure MySQL is running
- Verify database exists
- Run
composer installin the project directory - Ensure Composer is installed globally
- Ensure DOMPDF is installed via Composer
- Check file permissions on uploads directory
- Enable JavaScript in your browser
- Clear browser cache and localStorage
- Backend: PHP 7.4+ (No framework, custom MVC)
- Database: MySQL with PDO
- Frontend: HTML5, TailwindCSS (CDN)
- JavaScript: Alpine.js (CDN)
- PDF Generation: DOMPDF
- Architecture: MVC pattern with routing
This project is open-source and available for personal use.