GithubHelp home page GithubHelp logo

bunq / tinker_php Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 8.0 114 KB

Install Tinker by just running this command: bash <(curl -s https://tinker.bunq.com/php/setup.sh)

License: MIT License

Shell 33.67% PHP 66.33%
php tinker bunq-api payment bank-account bank-integration banking-applications banking-api

tinker_php's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tinker_php's Issues

[SOLUTION] SDK is outdated the BunqLib causing Tinker (and examples) Errors in addCallbackUrl

First, It is Solved. It is FOR SURE a bug with SDK and the BunqLib in Tinker and Examples.

The basic flow is:
Tinker::addCallbackUrl => BunqLib::addCallbackUrl => UserPerson::getNotificationFilters => Add new notification filters to the current filter list => UserPerson::update().

But this is wrong in several places:

  1. at BunqLib::addCallbackUrl is using "new NotificationFilter()" to generate a new NotificationFilter Object. This is incorrect because the SDK is asking for the NotificationFilterUrlUser / NotificationFilterMonataryAccount;

  2. at BunqLib::addCallbackUrl is using UserPerson::update() to set the new NotificationFiler. This is incorrect because:
    a. the parameters are mismatched;
    b. the update is no longer taking NotificationFilter as a parameter and it is not going to update the filters;

The Solution:
STEP 1. replace BunqLib::addCallbackUrl with:

public function addCallbackUrl(string $callbackUrl) {
       $allUpdatedNotificationFilter[] = new NotificationFilterUrl(
            self::NOTIFICATION_CATEGORY_MUTATION,
            $callbackUrl
        );

        $notificationFilterUrlUser = new NotificationFilterUrlUser($allUpdatedNotificationFilter);
        $notificationFilterUrlUser -> create($allUpdatedNotificationFilter);
}

STEP 2. (THE BUG):
in bunq\sdk_php\Model\Core\BunqModel.php
at line: 361
Change:
$value = static::createListFromResponseArray($response, $wrapper);
Into:
$value = static::createListFromResponseArray($response[0], $wrapper);

Because the returned response is like:

     Array(1) => 
           Array(1) => 
                Array(5)
                     "NotificationFilters" => 
                     ....

There is one more dimension of the response array.

It is tested in both SANDBOX and PRODUCTION environments.

Correct certificate chain format for `client_service_provider_certificate_chain`

Steps to reproduce:

  1. running tinker/create-psd2-configuration.php --certificate ~/path/to/certs/signing_cert.pem --chain ~/path/to/certs/signing_cert_chain.pem --key ~/path/to/certs/signing_cert.key from terminal

What should happen:

  1. Create PSD2 Provider

What happens:

  1. Running into Error message: Certificate root is not trusted. Make sure that the last certificate in the chain is the root certificate. in /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:52

Traceback

PHP Fatal error: Uncaught bunq\Exception\BadRequestException: HTTP Response Code: 400
The response id to help bunq debug: 6b3487d7-44e8-4a99-8f3c-45441bc7e810
Error message: Certificate root is not trusted. Make sure that the last certificate in the chain is the root certificate. in /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:52
Stack trace:
#0 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/Handler/ResponseHandlerError.php(54): bunq\Exception\ExceptionFactory::createExceptionForResponse(Array, 400, '6b3487d7-44e8-4...')
#1 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/Handler/HandlerUtil.php(42): bunq\Http\Handler\ResponseHandlerError->execute(Object(GuzzleHttp\Psr7\Response))
#2 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/FulfilledPromise.php(39): bunq\Http\Handler\HandlerUtil::bunq\Http\Handler{closure}(Object(GuzzleHttp\Psr7\Response))
#3 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise{closure}()
#4 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Promise\TaskQueue->run(true)
#5 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()
#6 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()
#7 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()
#8 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#9 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/guzzle/src/Client.php(183): GuzzleHttp\Promise\Promise->wait()
#10 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/ApiClient.php(220): GuzzleHttp\Client->request('POST', Object(GuzzleHttp\Psr7\Uri), Array)
#11 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/ApiClient.php(492): bunq\Http\ApiClient->request('POST', 'payment-service...', Array, Array, Array)
#12 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Model/Core/PaymentServiceProviderCredentialInternal.php(46): bunq\Http\ApiClient->post('payment-service...', Array, Array)
#13 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Context/ApiContext.php(221): bunq\Model\Core\PaymentServiceProviderCredentialInternal::createWithApiContext('-----BEGIN CERT...', '-----BEGIN CERT...', 'UvMNfs5vOA2TV9e...', Object(bunq\Context\ApiContext))
#14 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Context/ApiContext.php(153): bunq\Context\ApiContext->initializePsd2Credential(Object(bunq\Model\Generated\Object\Certificate), Object(bunq\Security\PrivateKey), Array)
#15 /Users/noah-vincenznoah/Desktop/tinker2/tinker/create-psd2-configuration.php(57): bunq\Context\ApiContext::createForPsd2(Object(bunq\Util\BunqEnumApiEnvironmentType), Object(bunq\Model\Generated\Object\Certificate), Object(bunq\Security\PrivateKey), Array, '##### YOUR DEVI...')
#16 {main}
thrown in /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php on line 52

Fatal error: Uncaught bunq\Exception\BadRequestException: HTTP Response Code: 400
The response id to help bunq debug: 6b3487d7-44e8-4a99-8f3c-45441bc7e810
Error message: Certificate root is not trusted. Make sure that the last certificate in the chain is the root certificate. in /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:52
Stack trace:
#0 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/Handler/ResponseHandlerError.php(54): bunq\Exception\ExceptionFactory::createExceptionForResponse(Array, 400, '6b3487d7-44e8-4...')
#1 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/Handler/HandlerUtil.php(42): bunq\Http\Handler\ResponseHandlerError->execute(Object(GuzzleHttp\Psr7\Response))
#2 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/FulfilledPromise.php(39): bunq\Http\Handler\HandlerUtil::bunq\Http\Handler{closure}(Object(GuzzleHttp\Psr7\Response))
#3 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise{closure}()
#4 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Promise\TaskQueue->run(true)
#5 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()
#6 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()
#7 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()
#8 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#9 /Users/noah-vincenznoah/Desktop/tinker2/vendor/guzzlehttp/guzzle/src/Client.php(183): GuzzleHttp\Promise\Promise->wait()
#10 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/ApiClient.php(220): GuzzleHttp\Client->request('POST', Object(GuzzleHttp\Psr7\Uri), Array)
#11 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Http/ApiClient.php(492): bunq\Http\ApiClient->request('POST', 'payment-service...', Array, Array, Array)
#12 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Model/Core/PaymentServiceProviderCredentialInternal.php(46): bunq\Http\ApiClient->post('payment-service...', Array, Array)
#13 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Context/ApiContext.php(221): bunq\Model\Core\PaymentServiceProviderCredentialInternal::createWithApiContext('-----BEGIN CERT...', '-----BEGIN CERT...', 'UvMNfs5vOA2TV9e...', Object(bunq\Context\ApiContext))
#14 /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Context/ApiContext.php(153): bunq\Context\ApiContext->initializePsd2Credential(Object(bunq\Model\Generated\Object\Certificate), Object(bunq\Security\PrivateKey), Array)
#15 /Users/noah-vincenznoah/Desktop/tinker2/tinker/create-psd2-configuration.php(57): bunq\Context\ApiContext::createForPsd2(Object(bunq\Util\BunqEnumApiEnvironmentType), Object(bunq\Model\Generated\Object\Certificate), Object(bunq\Security\PrivateKey), Array, '##### YOUR DEVI...')
#16 {main}
thrown in /Users/noah-vincenznoah/Desktop/tinker2/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php on line 52

SDK version and environment

Response id

  • Response id: 6b3487d7-44e8-4a99-8f3c-45441bc7e810

Extra info:

I have verified my certificate and its root certificate. I am unsure about the format for the client_service_provider_certificate_chain parameter value for the request body to the POST /payment-service-credential-provider endpoint for our certificates?
Assuming I have the three certificates:

  1. client signing certificate A
  2. intermediate certificate B
  3. root certificate C

What should the client_service_provider_certificate_chain value be (ie the format of the signing_cert_chain.pem file in the Steps to reproduce command)?
We have tried many different combinations

  1. BC with new-line characters (\n) and -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- prefix and suffix for both B and C
  2. BC without new-line characters (\n) and -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- prefix and without suffix for both B and C
  3. B,C
  4. [B,C]
  5. CB
    ... and so on. Any help would be greatly appreciated.

Superfluous field "card_ids" when creating callback URL

Hi!

As I'm creating an API to sync payments with a bookkeeping system, I'd like to get notified about payments. That's why I need to add a callback url.

My test looks like this:

	/** @test */
	public function it_adds_a_callback_url()
	{
		// given
		$user = $this->bunq->getCurrentUser();
		$callbackUrl = "https://example.org";

		// when
		$this->bunq->addCallbackUrl($callbackUrl);
		
		// then
		$filters = $user->getNotificationFilters();
		$this->assertTrue(count($filters) >= 1);
	}

($this->bunq refers to BunqLib}

When running this test, I'm getting the error:

Error message: Superfluous field "card_ids".Superfluous field "card_limits".

But I can't find any documentation about this error. I tried removing the default null values, changing the url, but none of these work.

Could it be a sandbox thing? Or what am I missing here?

Thanks!

Issue for PR #5, create option to make IBAN payments.

Steps to reproduce:

  1. make payment with IBAN

What should happen:

  1. process payment, normal makePayment function doesnt support IBAN (only Email and Phone)

What happens:

  1. with makePayment, it throws an error

Traceback

 # PHP Fatal error:  Uncaught bunq\Exception\BadRequestException: HTTP Response Code: 400
The response id to help bunq debug: 6cbf9a52-7220-44d6-b118-2fb4d7458db5
Error message: Email has incorrect value "<IBAN>". in /home/evharten/betalingen/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:52
Stack trace:
#0 /home/evharten/betalingen/vendor/bunq/sdk_php/src/Http/Handler/ResponseHandlerError.php(54): bunq\Exception\ExceptionFactory::createExceptionForResponse(Array, 400, '6cbf9a52-7220-4...')
#1 /home/evharten/betalingen/vendor/bunq/sdk_php/src/Http/Handler/HandlerUtil.php(42): bunq\Http\Handler\ResponseHandlerError->execute(Object(GuzzleHttp\Psr7\Response))
#2 /home/evharten/betalingen/vendor/guzzlehttp/promises/src/FulfilledPromise.php(39): bunq\Http\Handler\HandlerUtil::bunq\Http\Handler\{closure}(Object(GuzzleHttp\Psr7\Response))
#3 /home/evharten/betalingen/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise\{closure}()
#4 /home/evharten/betalingen/vendo in /home/evharten/betalingen/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php on line 52

SDK version and environment

  • Tested on 0.12.4
  • Sandbox
  • Production

Response id

  • Response id: 6cbf9a52-7220-44d6-b118-2fb4d7458db5

Extra info:

  • Fixed in pullrequest #5

ERROR: Your PHP seems to be linked to the MacOS provided curl binary.

Dear,

I have a problem that I cannot solve. This concerns the error message below. I tried reinstalling with brew but this didn't seems to work

Your PHP seems to be linked to the MacOS provided curl binary. This is incompatible with our SDK, please reinstall by running: "brew reinstall --with-homebrew-curl".

System details:
OS: MacOS Mojave
PHP version: 7.1

How to implement bunq-tinker in php?

Hello guys,
I have installed bunq-tinker in laravel project vendor/tinker, but there is not much documentation/examples on web for how to code bunq-tinker. I am stucked here don't know how to use bunq-tinker.
Anybody please can help me out from this problem?
Thanks.

Add installation request for required dependencies

When a dependency is detected as missing it should ask the user if the dependency should be installed with the default installation command instead of simply exiting the setup script.

For composer the php-mbstring and php-curl packages are also required which are currently not checked yet

Fatal error when using `tinker/user-overview.php`

Reproduce steps:

$ bash <(curl -s https://tinker.bunq.com/php/setup.sh)
[Output omitted]
$ tinker/user-overview.php

Expected outcome:

A new sandbox account is created and an overview is shown.

Actual outcome:

  ████████╗██╗███╗   ██╗██╗  ██╗███████╗██████╗ ██╗███╗   ██╗ ██████╗ 
  ╚══██╔══╝██║████╗  ██║██║ ██╔╝██╔════╝██╔══██╗██║████╗  ██║██╔════╝ 
     ██║   ██║██╔██╗ ██║█████╔╝ █████╗  ██████╔╝██║██╔██╗ ██║██║  ███╗
     ██║   ██║██║╚██╗██║██╔═██╗ ██╔══╝  ██╔══██╗██║██║╚██╗██║██║   ██║
     ██║   ██║██║ ╚████║██║  ██╗███████╗██║  ██║██║██║ ╚████║╚██████╔╝
     ╚═╝   ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝ ╚═════╝ 
PHP Fatal error:  Uncaught bunq\Exception\NotFoundException: HTTP Response Code: 404
The response id to help bunq debug: 9395f5a3-bf74-4507-b74a-e8fad476200d
Error message: Route not found. in $PWD/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:58
Stack trace:
#0 $PWD/vendor/bunq/sdk_php/src/Http/Handler/ResponseHandlerError.php(54): bunq\Exception\ExceptionFactory::createExceptionForResponse()
#1 $PWD/vendor/bunq/sdk_php/src/Http/Handler/HandlerUtil.php(42): bunq\Http\Handler\ResponseHandlerError->execute()
#2 $PWD/vendor/guzzlehttp/promises/src/FulfilledPromise.php(39): bunq\Http\Handler\HandlerUtil::bunq\Http\Handler\{closure}()
#3 $PWD/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise\{closure}()
#4 $PWD/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Promise\TaskQueue->run()
#5 $PWD/vendor in $PWD/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php on line 58

System info:

$ uname -r
5.9.6-arch1-1
$ php --version
PHP 7.4.12 (cli) (built: Oct 29 2020 18:50:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Loading API Key

Instaled Tinker but get the following errors?
Not sure why or what todo?
I run from Ubuntu?

`Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for bunq/sdk_php 0.13.2 -> satisfiable by bunq/sdk_php[0.13.2].
- bunq/sdk_php 0.13.2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.

To enable extensions, verify that they are enabled in your .ini files:
- /etc/php/7.2/cli/php.ini
- /etc/php/7.2/cli/conf.d/10-opcache.ini
- /etc/php/7.2/cli/conf.d/10-pdo.ini
- /etc/php/7.2/cli/conf.d/20-calendar.ini
- /etc/php/7.2/cli/conf.d/20-ctype.ini
- /etc/php/7.2/cli/conf.d/20-curl.ini
- /etc/php/7.2/cli/conf.d/20-exif.ini
- /etc/php/7.2/cli/conf.d/20-fileinfo.ini
- /etc/php/7.2/cli/conf.d/20-ftp.ini
- /etc/php/7.2/cli/conf.d/20-gettext.ini
- /etc/php/7.2/cli/conf.d/20-iconv.ini
- /etc/php/7.2/cli/conf.d/20-json.ini
- /etc/php/7.2/cli/conf.d/20-phar.ini
- /etc/php/7.2/cli/conf.d/20-posix.ini
- /etc/php/7.2/cli/conf.d/20-readline.ini
- /etc/php/7.2/cli/conf.d/20-shmop.ini
- /etc/php/7.2/cli/conf.d/20-sockets.ini
- /etc/php/7.2/cli/conf.d/20-sysvmsg.ini
- /etc/php/7.2/cli/conf.d/20-sysvsem.ini
- /etc/php/7.2/cli/conf.d/20-sysvshm.ini
- /etc/php/7.2/cli/conf.d/20-tokenizer.ini
You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.
`

Determine Pointer type according to recipient.

Currently when making a payment or request, an email Pointer will always be created (you cannot send money to an IBAN for example).

Would be nice to be able to send money to phone numbers and IBANs as well, besides emails :)

tinker/user-overview returns 500 (Fatal error: Uncaught bunq\Exception\PleaseContactBunqException)

Steps to reproduce:

  1. bash <(curl -s https://tinker.bunq.com/php/setup.sh)
  2. tinker/user-overview.php

What should happen:

  1. Should return an account, as describer in https://doc.bunq.com/#/android-emulator (Once installed, run tinker/user-overview, this will create an account for you when necessary)

What happens:

Returns a fatal error

Traceback

Micheles-MacBook-Pro:tinker-php michele$ tinker/user-overview.php
*** tinkering cool logo ***
Fatal error: Uncaught bunq\Exception\PleaseContactBunqException: HTTP Response Code: 500
The response id to help bunq debug: The response header "X-Bunq-Client-Response-Id" or "x-bunq-client-response-id" could not be found.
Error message:

Encountered unhandled exception.

in /Users/michele/dev/tmi/tinker-php/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php:64
Stack trace:
#0 /Users/michele/dev/tmi/tinker-php/vendor/bunq/sdk_php/src/Http/Handler/ResponseHandlerError.php(54): bunq\Exception\ExceptionFactory::createExceptionForResponse(Array, 500, 'The response he...')
#1 /Users/michele/dev/tmi/tinker-php/vendor/bunq/sdk_php/src/Http/Handler/HandlerUtil.php(42): bunq\Http\Handler\ResponseHandlerError->execute(Object(GuzzleHttp\Psr7\Response))
#2 /Users/michele/dev/tmi/tinker-php/vendor/guzzlehttp/promises/src/FulfilledPromise.php(39): bunq\Http\Handler\HandlerUtil::bunq\Http\Handler{closure}(Object(GuzzleHttp\Psr7\Response))
#3 /Users/michele/dev/tmi/tinker-php/vendor/guzzlehttp/p in /Users/michele/dev/tmi/tinker-php/vendor/bunq/sdk_php/src/Exception/ExceptionFactory.php on line 64

SDK version and environment

  • Tested on 0.10.0
  • Sandbox
  • Production

Response id

  • Response id: The response header "X-Bunq-Client-Response-Id" or "x-bunq-client-response-id" could not be found.

Additional info

I just tried the java tinker and I successfully created an account, so it sounds like a problem for this SDK and not a server error

How to install and use bunq tinker in laravel?

Hey guys, i need to know how can we use bunq tinker in laravel project?

What I've done so far, Installed tinker in new directory because when I try to run "bash <(curl -s https://tinker.bunq.com/php/setup.sh)" command it was saying " Please run the script from an empty directory".
And I've moved tinker folder in laravel vendor. But whenever i try to use BunqLib class in controller it giving me error "Class 'bunq\tinker\BunqLib' not found".
I have also tried with providers and alias in app.php but same error "class not found"
I'm stuck in bunq. I need help, Is anyone bunq expert here who can help me out?
Here the screenshot of error:
@OGKevin
screenshot from 2018-04-07 12-18-02

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.