{"id":15016841,"url":"https://github.com/andrewdwallo/erpsaas","last_synced_at":"2025-05-14T20:06:43.868Z","repository":{"id":60785134,"uuid":"539526271","full_name":"andrewdwallo/erpsaas","owner":"andrewdwallo","description":"A Laravel and Filament-powered accounting platform, crafting a modern and automated solution for financial management.","archived":false,"fork":false,"pushed_at":"2025-04-11T06:26:18.000Z","size":12935,"stargazers_count":1057,"open_issues_count":6,"forks_count":302,"subscribers_count":35,"default_branch":"3.x","last_synced_at":"2025-04-11T08:31:36.182Z","etag":null,"topics":["accounting","crm","erp","filament","finance","fintech","invoicing","laravel","livewire","plaid","saas"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrewdwallo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"andrewdwallo"}},"created_at":"2022-09-21T14:18:43.000Z","updated_at":"2025-04-10T14:09:23.000Z","dependencies_parsed_at":"2023-09-29T06:45:01.621Z","dependency_job_id":"f6bdc41d-28b6-4837-850c-dd76e8662247","html_url":"https://github.com/andrewdwallo/erpsaas","commit_stats":{"total_commits":236,"total_committers":2,"mean_commits":118.0,"dds":0.008474576271186418,"last_synced_commit":"54fee607b62a5de565f571cea328cbaa2004fc55"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewdwallo%2Ferpsaas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewdwallo%2Ferpsaas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewdwallo%2Ferpsaas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewdwallo%2Ferpsaas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewdwallo","download_url":"https://codeload.github.com/andrewdwallo/erpsaas/tar.gz/refs/heads/3.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248749333,"owners_count":21155677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accounting","crm","erp","filament","finance","fintech","invoicing","laravel","livewire","plaid","saas"],"created_at":"2024-09-24T19:49:27.490Z","updated_at":"2025-05-14T20:06:43.838Z","avatar_url":"https://github.com/andrewdwallo.png","language":"PHP","funding_links":["https://github.com/sponsors/andrewdwallo"],"categories":["Complete App","Filament"],"sub_categories":["Examples"],"readme":"# ERPSAAS\n\n\u003ca href=\"https://trendshift.io/repositories/4749\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/4749\" alt=\"andrewdwallo%2Ferpsaas | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\n\u003cimg width=\"1920\" alt=\"Create Company\" src=\"https://github.com/andrewdwallo/erpsaas/assets/104294090/5146c4db-dffc-4207-9095-2ebb80d452e1\"\u003e\n\u003cimg width=\"1920\" alt=\"Invoice\" src=\"https://github.com/andrewdwallo/erpsaas/assets/104294090/d7115830-6912-4267-ab54-17f7dbcc21cd\"\u003e\n\u003cimg width=\"1920\" alt=\"Plaid\" src=\"https://github.com/andrewdwallo/erpsaas/assets/104294090/c85862ac-62ff-4c0d-9b2a-f7393ad977ef\"\u003e\n\u003cimg width=\"1920\" alt=\"Connected Accounts\" src=\"https://github.com/andrewdwallo/erpsaas/assets/104294090/3a4deebc-528c-4b84-91db-9f0515de883d\"\u003e\n\u003cimg width=\"1920\" alt=\"Transactions\" src=\"https://github.com/andrewdwallo/erpsaas/assets/104294090/c50a899d-ee6f-4300-92a9-4a41c5433972\"\u003e\n\u003cimg width=\"1906\" alt=\"Screenshot 2024-12-08 at 3 05 30 AM\" src=\"https://github.com/user-attachments/assets/360f652a-5c61-4ae5-9fa1-9d6f3627e229\"\u003e\n\u003cimg width=\"1906\" alt=\"Balance Sheet Report\" src=\"https://github.com/user-attachments/assets/01b112d0-f9d6-4835-aca1-245c1a17830f\"\u003e\n\u003cimg width=\"1906\" alt=\"Trial Balance Report\" src=\"https://github.com/user-attachments/assets/b43beb9d-7e2c-413c-a7c5-8ab987885cae\"\u003e\n\u003cimg width=\"1906\" alt=\"Account Transactions Report\" src=\"https://github.com/user-attachments/assets/527bb3c9-4918-49c4-9be3-769e07e57a82\"\u003e\n\u003cimg width=\"1906\" alt=\"Account Balances Report\" src=\"https://github.com/user-attachments/assets/d8b28fcd-a9e2-4805-937c-dfd4d3848ce4\"\u003e\n\n\n\nA Laravel and Filament-powered accounting platform, crafting a modern and automated solution for financial management.\n\n# Demo\n\n**[Try the Demo](https://erpsaas-3-x-mrxixt.laravel.cloud)**\n\nThe demo environment provides a complete experience of the application with the following setup:\n\n- **Login Credentials**: Pre-filled for convenience (email: admin@erpsaas.com, password: password)\n- **Multi-Company Setup**: 8 pre-configured companies with different currencies:\n    - ERPSAAS (USD)\n    - British Crown Analytics (GBP)\n    - Swiss Precision Group (CHF)\n    - Tokyo Future Technologies (JPY)\n    - Sydney Harbor Systems (AUD)\n    - Mumbai Software Services (INR)\n    - Singapore Digital Hub (SGD)\n    - Dubai Business Consulting (AED)\n- **Feature Access**: Full accounting functionality with simplified user management\n- **Limitations**: Plaid, Live Currency, Profile customization, password reset, and registration are disabled\n\nThis demo is ideal for evaluating the application's multi-currency capabilities and core features without any\ninstallation required.\n\n**Note**: As this is a public demo environment, please do not enter any sensitive or personal information.\n\n## Sponsorship\n\nWhile **ERPSAAS** is open-source, maintaining it requires significant time and resources. Your sponsorship directly\nsupports ongoing development, bug fixes, and improved documentation.\n\nAs a solo developer, I can only provide limited free support. Sponsors receive priority assistance, input on feature\npriorities, and early access to updates. Even a small monthly contribution makes a significant difference in keeping\nthis project actively maintained.\n\n**Become a sponsor:** [GitHub Sponsors](https://github.com/sponsors/andrewdwallo)\n\n# Getting started\n\n## Installation\n\nPlease check the official laravel installation guide for server requirements before you\nstart. [Official Documentation](https://laravel.com/docs/11.x)\n\nClone the repository\n\n    git clone https://github.com/andrewdwallo/erpsaas.git\n\nSwitch to the repo folder\n\n    cd erpsaas\n\nInstall all the dependencies using composer and npm\n\n    composer install\n    npm install\n\nCopy the example env file and make the required configuration changes in the .env file\n\n    cp .env.example .env\n\nGenerate a new application key\n\n    php artisan key:generate\n\nRun the database migrations (**Set the database connection in .env before migrating**)\n\n    php artisan migrate\n\nBuild your assets \u0026 start the local development server\n\n    php artisan filament:assets\n    npm run build\n    npm run dev\n\n**Command list**\n\n    git clone https://github.com/andrewdwallo/erpsaas.git\n    cd erpsaas\n    composer install\n    npm install\n    cp .env.example .env\n    php artisan key:generate\n    php artisan migrate\n    npm run build\n    npm run dev\n\n## Database seeding\n\n**You may populate the database to help you get started quickly**\n\nOpen the DatabaseSeeder and set the property values as per your requirement\n\n    database/seeders/DatabaseSeeder.php\n\nDefault login information:\n\n    email: admin@gmail.com\n    password: password\n\nRun the database seeder\n\n    php artisan db:seed\n\n***Note***: It's recommended to have a clean database before seeding. You can reset your database to a clean state at\nany point by running the following command:\n\n    php artisan migrate:fresh\n\n## Generating PDFs for Reports\n\nTo generate PDFs for reports, the application uses Laravel Snappy. The Laravel Snappy package is already included in the\napplication, but you need to install Wkhtmltopdf separately.\n\n### Wkhtmltopdf Installation\n\n1. **Download and install Wkhtmltopdf**\n    - [Wkhtmltopdf Downloads](https://wkhtmltopdf.org/downloads.html)\n\n    - Alternatively, if you are using Homebrew on macOS, you can install it using the following command:\n      ```bash\n      brew install wkhtmltopdf\n      ```\n\n2. **Configure the binary paths**\n    - If needed, you can change the paths to the Wkhtmltopdf binaries in the Snappy configuration file (\n      `config/snappy.php`).\n\nFor detailed installation instructions, refer to\nthe [Laravel Snappy documentation](https://github.com/barryvdh/laravel-snappy).\n\n## Live Currency\n\n### Overview\n\nThis application offers support for real-time currency exchange rates. This feature is disabled by default. To enable\nit, you must first register for an API key at [ExchangeRate-API](https://www.exchangerate-api.com/). The application\nuses this service due to its generous provision of up to 1,500 free API calls per month, which should be enough for\ndevelopment and testing purposes.\n\n**Disclaimer**: There is no affiliation between this application and ExchangeRate-API.\n\nOnce you have your API key, you can enable the feature by setting the `CURRENCY_API_KEY` environment variable in your\n`.env` file.\n\n### Initial Setup\n\nAfter setting your API key in the `.env` file, it is essential to prepare your database to store the currency data.\nStart by running a fresh database migration:\n\n```bash\nphp artisan migrate:fresh\n```\n\nThis ensures that your database is in the correct state to store the currency information. Afterward, use the following\ncommand to generate and populate the Currency List with supported currencies for the Live Currency page:\n\n```bash\nphp artisan currency:init\n```\n\nThis command fetches and stores the list of currencies supported by your configured exchange rate service.\n\n### Configuration\n\nOf course, you may use any service you wish to retrieve currency exchange rates. If you decide to use a different\nservice, you can update the `config/services.php` file with your choice:\n\n```php\n'currency_api' =\u003e [\n    'key' =\u003e env('CURRENCY_API_KEY'),\n    'base_url' =\u003e 'https://v6.exchangerate-api.com/v6',\n],\n```\n\nThen, adjust the implementation of the `App\\Services\\CurrencyService` class to use your chosen service.\n\n### Live Currency Page\n\nOnce enabled, the \"Live Currency\" feature provides access to a dedicated page in the application, listing all supported\ncurrencies from the configured exchange rate service. Users can view available currencies and update exchange rates for\ntheir company's currencies as needed.\n\n### Important Information\n\n- To use the currency exchange rate feature, you must first obtain an API key from a service provider. This application\n  is configured to use a service that offers a free tier suitable for development and testing purposes.\n- Your API key is sensitive information and should be kept secret. Do not commit it to your repository or share it with\n  anyone.\n- Note that API rate limits may apply depending on the service you choose. Make sure to review the terms for your chosen\n  service.\n\n## Automatic Translation\n\nThe application now supports automatic translation, leveraging machine translation services provided by AWS, as\nfacilitated by the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) package. This integration\nsignificantly enhances the application's accessibility for a global audience. The application currently offers support\nfor several languages, including English, Arabic, German, Spanish, French, Indonesian, Italian, Dutch, Portuguese,\nTurkish, and Chinese, with English as the default language.\n\n### Configuration \u0026 Usage\n\nTo utilize this feature for additional languages or custom translations:\n\n1. Follow the documentation provided in the [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic)\n   package.\n2. Configure the package with your preferred translation service credentials.\n3. Run the translation commands as per the package instructions to generate new translations.\n\nOnce you have configured the package, you may update the following method in the `app/Models/Setting/Localization.php`\nfile to generate translations based on the selected language in the application UI:\n\nChange to the following:\n\n```php\npublic static function getAllLanguages(): array\n{\n    return Languages::getNames(app()-\u003egetLocale());\n}\n```\n\n## Plaid Integration\n\nTo integrate [Plaid](https://plaid.com/) with your application for enhanced financial data connectivity, you must first\ncreate an account with Plaid and obtain your credentials. Set your credentials in the `.env` file as follows:\n\n```env\nPLAID_CLIENT_ID=your-client-id\nPLAID_CLIENT_SECRET=your-secret\nPLAID_ENVIRONMENT=sandbox # Can be sandbox, development, or production\nPLAID_WEBHOOK_URL=https://my-static-domain.ngrok-free.app/api/plaid/webhook # Must have /api/plaid/webhook appended\n```\n\nThe `PLAID_WEBHOOK_URL` is essential as it enables your application to receive real-time updates on transactions from\nconnected bank accounts. This webhook URL must contain a static domain, which can be obtained from services like ngrok\nthat offer a free static domain upon signup. Alternatively, you may use any other service that provides a static domain.\n\nAfter integrating Plaid, you can connect your account on the \"Connected Accounts\" page and link your financial\ninstitution. Before importing transactions, ensure to run the following command to process the queued transactions:\n\n```bash\nphp artisan queue:listen\n```\n\n## Testing\n\nThis project includes testing using [Pest](https://pestphp.com/). The current\ntest suite covers some reporting features and other core functionality. While it's not yet a fully comprehensive test\nsuite, it provides a foundation for testing critical features.\n\n### Setting Up the Testing Environment\n\n#### Create a testing database\n\nEnsure that you create a separate testing database named `erpsaas_test` in your database management system (e.g.,\nMySQL).\n\n```bash\nCREATE DATABASE erpsaas_test;\n```\n\n### Running Tests\n\nThe testing process automatically handles refreshing and seeding the test database with each test run, so no manual\nmigration is required. For more information on how to write and run tests using\nPest, refer to the official documentation: [Pest Documentation](https://pestphp.com/docs).\n\n## Dependencies\n\n- [filamentphp/filament](https://github.com/filamentphp/filament) - A collection of beautiful full-stack components\n- [andrewdwallo/filament-companies](https://github.com/andrewdwallo/filament-companies) - A complete authentication\n  system kit based on companies built for Filament\n- [andrewdwallo/transmatic](https://github.com/andrewdwallo/transmatic) - A package for automatic translation using\n  machine translation services\n- [akaunting/laravel-money](https://github.com/akaunting/laravel-money) - Currency formatting and conversion package for\n  Laravel\n- [squirephp/squire](https://github.com/squirephp/squire) - A library of static Eloquent models for common fixture data\n- [awcodes/filament-table-repeater](https://github.com/awcodes/filament-table-repeater) - A modified version of the\n  Filament Forms Repeater to display it as a table.\n\n***Note*** : It is recommended to read the documentation for all dependencies to get yourself familiar with how the\napplication works.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewdwallo%2Ferpsaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewdwallo%2Ferpsaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewdwallo%2Ferpsaas/lists"}