MoneyUnify Switch is an open-source API platform designed to manage payment provider integrations, customer accounts, and transaction flows from a unified dashboard central unit. It combines It provides a standardized interface for handling multiple payment providers, allowing businesses to easily switch between them without changing their core application logic. The platform supports features such as transaction management, customer account linking, and real-time status updates, making it an ideal solution for businesses looking to streamline their payment processing and reduce dependency on a single provider.
- PHP 8.5+
- Composer
- Node.js 18+ / npm or pnpm
- PostgreSQL preferably (you can use any db that supports native JSON columns)(configured via
.env) - Git
- Clone the repository:
git clone https://github.com/MoneyUnify/mu-switch.git
cd mu-switch- Install PHP dependencies:
composer install- Install JavaScript dependencies:
npm install- Create the environment file:
cp .env.example .env- Generate the application key:
php artisan key:generate-
Configure your database connection inside
.env- the .env.example file contains the necessary configuration options samples. -
Run migrations:
Note: The migrations will create the necessary tables for users, payment providers, customers, and transactions. Make sure your database is set up and the connection details in
.envare correct before running this command.
php artisan migrate- Start the development environment:
npm run devIf you prefer the Laravel setup shortcut script, you can run:
npm run setupA development-only Artisan command exists to create fake payment providers for a given user email. It is intentionally restricted to local or development environments.
php artisan mu:fake-providers user@example.comTo create a custom number of providers:
php artisan mu:fake-providers user@example.com --count=5This command will:
- validate that the app environment is
localordevelopment - find the user by email
- create fake
PaymentProviderrecords using Faker data
- 👤 Blessed Jason Mwanza
- GitHub: @blessedjasonmwanza
- Email: blessed.jason.mwanza@example.com
- Website: https://blessedjasonmwanza.github.io
- X (Twitter): @mwanzabj
- LinkedIn: Blessedjasonmwanza
We welcome contributions! If you want to help improve MoneyUnify Switch:
- open an issue for bugs or feature requests
- send a pull request with a clear description and tests
- follow existing code style and architecture patterns
When contributing, please:
- include a meaningful commit message
- write or update tests for your changes
- keep new features small and incremental
If this project helps you, please consider supporting the development by:
- starring the repository on GitHub
- sharing it with the community
- suggesting improvements or use cases
If you want to donate, please use the MoneyUnify team or sponsorship links associated with this repository.
- Donate via Buy Me a Coffee: https://buymeacoffee.com/mwanzabj
This project is licensed under the MIT License. See the LICENSE.txt file for full details.