ReferHub is a modular and composable referral system, designed to seamlessly generate and track referral codes for users. With support for various identification methods and a flexible event-tracking system, ReferHub provides an extensible solution for managing referrals across different platforms.


README

ReferHub is a modular and composable referral software designed to generate and manage referral codes, track events, and handle webhooks. Built with Symfony and following DDD and TDD principles, ReferHub offers a flexible and maintainable solution for developers and businesses.

Features

  • Referral Code Generation: Generate referral codes for users identified by email, username, or userId.
  • Event Tracking: Track generic events like Sign Up, Purchase, and more.
  • Webhook Integration: Trigger webhooks when tracked events occur.
  • CLI, REST, and Batch API Support: Flexible API interfaces for various integration needs.
  • Open Source: Contribute and customize to fit your unique requirements.

Installation

Requirements

  • Docker (required to run the project)

Steps

  1. Clone the Repository:

    git clone https://github.com/yourusername/referhub.git
  2. Navigate to the Project Directory:

    cd referhub
  3. Configure Environment Variables: Copy the .env file to the .env.local file with your database and other configurations.

  4. Build the Project:

    make build
  5. Run the containers :

    make up
  6. Create the db:

    make db-create
  7. Run db migrations:

    make db-migrate

Usage

Refer to the API documentation for details on interacting with ReferHub via REST API.

Contributing

We welcome contributions!

Support

For support, please open an issue on GitHub or contact the maintainers.

License

ReferHub is released under the GNU License.

Acknowledgments

Special thanks to the community and everyone who has contributed to this project.