{"id":23182042,"url":"https://github.com/owlycode/reactboard","last_synced_at":"2025-08-18T13:34:14.473Z","repository":{"id":17524552,"uuid":"20312611","full_name":"OwlyCode/reactboard","owner":"OwlyCode","description":"The simple and flexible reactphp dashboard","archived":false,"fork":false,"pushed_at":"2015-11-10T13:13:22.000Z","size":277,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-07-28T09:05:31.458Z","etag":null,"topics":[],"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/OwlyCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-30T00:38:36.000Z","updated_at":"2016-04-20T16:14:31.000Z","dependencies_parsed_at":"2022-09-22T14:42:58.291Z","dependency_job_id":null,"html_url":"https://github.com/OwlyCode/reactboard","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OwlyCode%2Freactboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OwlyCode%2Freactboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OwlyCode%2Freactboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OwlyCode%2Freactboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OwlyCode","download_url":"https://codeload.github.com/OwlyCode/reactboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230238661,"owners_count":18195061,"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":[],"created_at":"2024-12-18T08:19:13.277Z","updated_at":"2024-12-18T08:19:13.887Z","avatar_url":"https://github.com/OwlyCode.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"ReactBoard\n==========\n\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/8c654e5d-b84d-4fed-8958-614102f00da8/mini.png)](https://insight.sensiolabs.com/projects/8c654e5d-b84d-4fed-8958-614102f00da8)\n\n![screenshot](http://i.imgur.com/mwlWFUI.png?1)\n\n\nWhat is it ?\n------------\n\nReactBoard is an extensible dashboard based on React, Rachet and the Symfony Components. Install it on a server, set up the applications\nyou wish and plug a screen !\n\nYou can interact in real time with it via an http API.\n\nGetting started\n---------------\n\nCreate a composer.json\n\n```json\n{\n    \"autoload\": {\n        \"psr-0\": { \"\": \"src/\" }\n    },\n    \"require\": {\n        \"owlycode/reactboard\": \"~0.1\"\n    }\n}\n```\n\nAnd then execute the following commands\n\n```bash\ncomposer install\ncp vendor/owlycode/reactboard/app . -r\nmv app/app.php.dist app/app.php\n```\n\nNow run the application with ``php app/app.php``\n\nWhen browsing ``http://localhost:8080/home/landing``, you should see the welcome page.\n\nPlaying around\n--------------\n\nThe following applications are included : hello, prompt, twitter and vlc.\n\n- hello is the one you are seeing by default, it's basically an hello world.\n- prompt will display a single message.\n- twitter will display a live updated list of tweets from a hashtag.\n- vlc will display a player (your browser needs the VLC plugin) streaming from a specified source.\n\nYou can switch between applications by issuing calls to the ``http://localhost:8080/home/command`` URL. Give a try to the following\ncommands and see what happens in your browser :\n\n```bash\ncurl \"http://localhost:8080/home/command?app=prompt\u0026message=Oh%20Hi!\"\n```\n\nBefore running this one, you will need to setup a twitter application and enter its credentials in app/app.php\n\n```bash\ncurl \"http://localhost:8080/home/command?app=twitter\u0026hashtag=symfony\"\n```\n\nBefore running this one, make sure you have vlc installed (tested on linux \u0026 windows). Don't forget to ``killall vlc`` when you are done.\n\n```bash\nvlc screen:// --screen-fps=20 --live-caching=10 --sout=\"#transcode{vcodec=mp2v,vb=256,fps=20,scale=Auto,acodec=none}:http{mux=raw,dst=:8081/}\" -I dummy \u0026\ncurl \"http://localhost:8080/home/command?app=vlc\u0026streamer=127.0.0.1:8081\"\n```\n\nCustomize the theme\n-------------------\n\nCreate your own css file in ``app/Resources/css`` and replace the default theme in ``app/app.php`` :\n\n```php\n$kernel-\u003elink(new ExternalAsset(__DIR__ . '/Resources', 'css/your-theme-file.css'));\n```\n\nCreate your own application\n---------------------------\n\nCreate an ``src/MyNamespace/MyAppName`` folder with the following files :\n\n```php\n\u003c?php\n// src/MyNamespace/MyAppName/MyAppNameApplication.php\n\nnamespace MyNamespace\\MyAppName;\n\nuse OwlyCode\\ReactBoard\\Application\\AbstractApplication;\nuse OwlyCode\\ReactBoard\\Application\\ApplicationInterface;\n\nclass MyAppNameApplication extends AbstractApplication implements ApplicationInterface\n{\n    /**\n     * Called just before the socket server starts.\n     */\n    public function init()\n    {\n        $this-\u003ewatch('my_app_name.request.index', function(){\n            return $this-\u003erender('index.html.twig', array('status' =\u003e 'loaded'));\n        });\n    }\n\n    public function getName()\n    {\n        return 'my_app_name';\n    }\n}\n```\n\n```twig\n{# src/MyNamespace/MyAppName/views/index.html.twig #}\n\n\u003ch1\u003eMy application is {{ status }} ! :-)\u003c/h1\u003e\n```\n\nThen register your newly created application in ``app/app.php``:\n\n```php\n$kernel-\u003eregister(new MyAppNameApplication());\n```\n\nYou can now start/restart ReactBoard, open your browser and try : ``curl \"http://localhost:8080/home/command?app=my_app_name\"``\n\nGoing further :\n---------------\n\nReactBoard is still in early development and more documentation will be coming. If you have any question please feel free to open an issue :-)\n\nMeanwhile, to see how to do more advanced stuff, like loading your own assets or access the dependency injection mechanism, take a look at the [builtin applications](https://github.com/OwlyCode/reactboard/tree/master/src/OwlyCode/ReactBoard/Builtin). The Twitter application is the most advanced and covers everything ReactBoard can do : application lifecycle events, live updates, dependency injection use, assets registering and many other things.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowlycode%2Freactboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowlycode%2Freactboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowlycode%2Freactboard/lists"}