A comprehensive Laravel-based web application for managing personal and business expenses, income tracking, bills management, and financial reporting. Perfect for individuals, families, or small teams who want to maintain detailed financial records and generate insightful reports.
- Financial Summary: Real-time overview of total expenses, income, and net cash flow
- Category Breakdown: Visual breakdown of expenses by category for the current month
- Recent Transactions: Quick view of recent expenses and income entries
- Monthly Analytics: Track your financial health at a glance
- Complete CRUD Operations: Add, view, edit, and delete expenses with ease
- Advanced Filtering: Filter expenses by:
- Category
- Assigned user
- Amount range (min/max)
- Date range
- Purchase location (Supershop, eCommerce, Bazar)
- Keyword search in descriptions
- Receipt Management: Upload and store receipt images
- Group Expenses: Track shared expenses among multiple users
- Purchase Tracking: Record where purchases were made
- Income Management: Add, edit, and delete income entries
- User Assignment: Track income assigned to specific users
- Date-based Organization: Organize income by date for better tracking
- Notes Support: Add detailed notes to income entries
- Custom Categories: Create, edit, and delete expense categories
- Category Analytics: View spending breakdown by category
- Flexible Organization: Organize expenses with custom categories
- Bill Management: Track recurring bills with due dates
- Bill Frequency: Set bills as daily, weekly, monthly, quarterly, or yearly
- Payment Status: Mark bills as paid or unpaid
- Invoice Management: Create and track invoices with unique numbers
- Invoice Status: Track invoice status (pending, paid, overdue)
- Monthly Reports: Detailed monthly expense summaries with category breakdowns
- User Reports: Individual user expense reports with detailed analytics
- Expense Trends: Analyze spending patterns over time
- Cash Flow Reports: Track income vs expenses with net cash flow analysis
- Export Capabilities: Export all reports to Excel, CSV, or PDF formats
- Role-based Access: Admin and regular user roles
- Multi-user Support: Manage expenses for multiple users
- User Authentication: Secure login/logout system
- Profile Management: Edit user profiles and change passwords
- Admin Controls: Admin users can manage other users
- Built-in Calculator: Perform calculations directly within the app
- Notes System: Keep track of important financial notes
- Responsive Design: Works seamlessly on desktop and mobile devices
- Framework: Laravel 12.x (PHP 8.2+)
- Database: SQLite (configurable to MySQL/PostgreSQL)
- Authentication: Laravel's built-in authentication system
- Authorization: Laravel Policies for access control
- Views: Blade Templates
- Styling: Bootstrap 5.2.3 + Custom SASS
- JavaScript: Vanilla JavaScript with Axios for AJAX
- Build Tool: Vite 6.2.4
- Laravel UI: For authentication scaffolding
- Maatwebsite Excel: For report exports (Excel, CSV, PDF)
- Laravel Tinker: For database interactions and debugging
- Package Manager: Composer (PHP) + NPM (JavaScript)
- Task Runner: Laravel Artisan commands
- Code Quality: Laravel Pint for code formatting
- Testing: PHPUnit for automated testing
- PHP 8.2 or higher
- Composer
- Node.js and NPM
- SQLite (or MySQL/PostgreSQL if preferred)
-
Clone the repository
git clone https://github.com/your-username/expense-tracker-web-app.git cd expense-tracker-web-app -
Install PHP dependencies
composer install
-
Install JavaScript dependencies
npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
touch database/database.sqlite php artisan migrate php artisan db:seed
-
Build assets
npm run build # or for development npm run dev -
Start the development server
php artisan serve
-
Visit the application Open http://localhost:8000 in your browser.
After seeding, you can log in with:
- Email: Check the
AdminUserSeeder.phpfile for default credentials - Password: Check the seeder file for the default password
- Login with your credentials
- Set up categories for your expenses
- Add your first expense with amount, category, and description
- Track income to balance your cash flow
- View reports to analyze your spending patterns
- Navigate to Expenses to add, edit, or delete expenses
- Use filters to find specific expenses quickly
- Upload receipts for better record keeping
- Assign expenses to different users for shared expense tracking
- Monthly Reports: View spending by month and category
- User Reports: See individual user spending and balances
- Trends: Analyze spending patterns over time
- Cash Flow: Track income vs expenses
- Export: Download reports in Excel, CSV, or PDF format
Key environment variables in .env:
APP_NAME="Expense Tracker"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database/database.sqliteThe app uses SQLite by default, but you can configure it for MySQL or PostgreSQL by updating the .env file and running migrations.
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow PSR-12 coding standards
- Write tests for new features
- Update documentation as needed
- Use meaningful commit messages
Run the test suite:
php artisan testFor specific test types:
# Feature tests
php artisan test --testsuite=Feature
# Unit tests
php artisan test --testsuite=UnitThis project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Provide steps to reproduce any bugs
Planned features for future releases:
- API endpoints for mobile app integration
- Budget planning and alerts
- Recurring expense automation
- Advanced analytics with charts
- Multi-currency support
- Data import/export from other financial apps
- Mobile responsive improvements
- Real-time notifications
- users: User accounts with roles and monthly allocations
- categories: Expense categories for organization
- expenses: Main expense records with amounts, dates, and descriptions
- incomes: Income tracking with user assignments
- bills: Recurring bill management
- invoices: Invoice tracking with status management
- Users have many expenses, incomes, bills, and invoices
- Expenses belong to categories and users
- Expenses can be assigned to different users (shared expenses)
- Bills and invoices are owned by users
Built with โค๏ธ using Laravel
