grafiteinc / builder Goto Github PK
View Code? Open in Web Editor NEWPrepare your Laravel apps incredibly fast, with various commands, services, facades and boilerplates.
Home Page: https://builder.grafite.ca
License: MIT License
Prepare your Laravel apps incredibly fast, with various commands, services, facades and boilerplates.
Home Page: https://builder.grafite.ca
License: MIT License
Thanks for such an awesome toolkit!
I'd like to suggest updating the UserTableSeeder file or the Docs to actually add a user with privileges.
I was getting a few errors when I first installed the cogs and was unclear if it was a installation issue, configuration issue or what.
ErrorException in AuthServiceProvider.php line 30:
Trying to get property of non-object
ErrorException in InputMaker.php line 199:
Trying to get property of non-object
ErrorException in InputMaker.php line 199:
Trying to get property of non-object
(View: /home/vagrant/Projects/site/resources/views/user/meta.blade.php)
I figured it out pretty quickly but it would be nice if it were mentioned in the docs. It would have saved me some time double checking everything.
I was thinking something like the below addition.
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$user = App\Repositories\User\User::create(array(
'name' => 'Admin',
'email' => '[email protected]',
'password' => Hash::make('password'),
'remember_token' => hash_hmac('sha256', str_random(40), env('APP_KEY')),
));
$user->meta()->save(new \App\Repositories\UserMeta\UserMeta(
[
'phone' => '415-555-1212',
'marketing' => 1,
'terms_and_cond' => 1
]
));
$admin_role = \App\Repositories\Role\Role::findByName('Admin');
$user->roles()->save($admin_role);
}
}
Where i can find a doc about --relationships
command option?
in example with belongsToMany or hasManyThrough, and can i create multiple relationships when i run crudmaker:new
?
Using basic Laravel 5.2 with laracogs 1.9.3 and "starter".
Add a new user and invite to one (or more) teams. Then delete the user.
This correctly removes their entry from user, user_meta tables and role_user tables, but does not remove their entries from the team_user table.
In the books example, could you add how to limit it to the team.
The first paragraph of text for the API and Socialite text is the same in the docs.
here: https://laracogs.com/docs/socialite/
and here: https://laracogs.com/docs/api/
When using the starter kit, the default dashboard view loads the main layout file and not the 'dashboard.main' blade layout that gets generated.
after run the comand for generate CRUD:
php artisan crudmaker:new PriceList_Service --api --ui=bootstrap --migration --schema="id:increments,slug:string,name:string,description:text,active:tinyInteger" --withFacade
and acessing the page /pricelist/services/
i have the error:
ErrorException in UrlGenerator.php line 314: Route [pricelist.services.search] not defined. (View: D:\serverpath\dev2016\yabhq-laracogs\www\laracogs\resources\views\pricelist\services\index.blade.php)
and
InvalidArgumentException in UrlGenerator.php line 314: Route [pricelist.services.search] not defined.
In routes.php
i have this code:
Route::group(['namespace' => 'PriceList', 'prefix' => 'pricelist', 'middleware' => ['web']], function () {
/*
|--------------------------------------------------------------------------
| Service Routes
|--------------------------------------------------------------------------
*/
Route::resource('services', 'ServiceController', ['except' => ['show']]);
Route::post('services/search', [
'as' => 'services.search',
'uses' => 'ServiceController@search'
]);
});
and if i change the route name services.search
in pricelist.services.search
it work:
Route::post('services/search', [
'as' => 'pricelist.services.search',
'uses' => 'ServiceController@search'
]);
It's a Laravel error or from Laracogs? My solution go well or i need doing something else for get right?
Hi Team,
The installiation documentation is broken this step should come before the publish command:
php artisan vendor:publish --provider="Yab\Laracogs\LaracogsProvider"
Having some problems getting the crud to work - the routes are not detected. So before I go down a rabbit hole debugging that, figured I'll check with you first.
What version of laravel has this been tested on? I tried it on 5.3.6.
Hello,
I'm using the sample command to generate CRUD,
php artisan crudmaker:new Book
--migration
--schema="id:increments,title:string,author:string"
However I don't see it generating any repositories files that I read in the docs.
app/Repositories/Book/BookRepository.php
app/Repositories/Book/Book.php
Is there a specific reason for this?
When updated a user (attempting to change role but happens if saving no change) I get an error which is related to the UserRepo - assignRole. It's expecting RoleName not RoleId.
Not sure if it needs to be changed to store the RoleName in the form, or change the code to get the rolename from the roleid.
I will do the necessary code changes, just want to know which one i should do?
Line 105 in UserRepository
The phpdocs are also incorrect (order of parameters)
/**
* Assign a role
*
* @param int $userId
* @param string $roleName
* @return boolean
*/
public function assignRole($roleName, $userId)
{
I just created a new laravel project and it's version 5.3.4, trying to install laracogs results in a failure. Here is what happens:
Using version ^2.0 for yab/laracogs
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for yab/laracogs ^2.0 -> satisfiable by yab/laracogs[v2.0.0].
- Conclusion: remove laravel/framework v5.3.4
- Conclusion: don't install laravel/framework v5.3.4
- yab/laracogs v2.0.0 requires illuminate/support 5.3 -> satisfiable by laravel/framework[v5.3.0], illuminate/support[v5.3.0].
- Can only install one of: laravel/framework[v5.3.0, v5.3.4].
- don't install illuminate/support v5.3.0|don't install laravel/framework v5.3.4
- Installation request for laravel/framework (locked at v5.3.4, required as 5.3.*) -> satisfiable by laravel/framework[v5.3.4].
Installation failed, reverting ./composer.json to its original content.
I've done the install twice now just to make sure I didn't miss anything. Fresh version of Laravel, with artisan starter and artisan api run, and all the associated changes and updates made.
I can see the properly namespaced Api\AuthController there, and it's included in the RouteServiceProvider via api-routes.php. Tried composer dump/update etc and still no go.
Tried the biling component and get the same issue.. can't find the Billing Controller.
php artisan route:list
fails as well with the error.
Any suggestions?
Just noted on L5.2.29 that the standard Starter Kit / Bootstrap isn't displaying error messages on the login sequence. This issue also affects the GET/POST responses inside the CRUD generator as well.
Steps to replicate (using Debugbar on vanilla L5.2 install to interrogate issue):
so i ran php artisan laracogs:starter and migrated and seeded, then when i want to create a new user, i get this error
Exception in UserService.php line 82:
We were unable to generate your profile, please try again later.
i readed the docs but what im a missing ?
$ php artisan laracogs:table-crud customers --bootstrap
** [Exception]
text is not in the array of valid column types: increments, integer, string, datetime, date, float, binary, blob, boolean, datetimetz, time, decimal, bi
gint, smallint, tinyint **
The readme and docs don't mention Braintree. Is it supported? What would be needed to implement that?
Are there any plans to add a My Account page to the starter kit?
Ability to change:
After defining the rules in the Repository/{Model Name}/{Model Name}.php
, the page just seems to refresh and not display the error or session information. The layout is including the /partials/message.blade.php
and /partial/error.blade.php
Any ideas?
When validation rules are specified if an error happens when saving model the error exception shows a general HttpResponseException without any other explanation. Then after deleting some parts of the model showed me the correct error when I commented the Model::$rules
ways to replicate
Is there a demo somewhere, or a video tour, or at least screenshots?
For example, I see that in Role.php
public static function findByName($name) { return Role::where('name', $name)->first(); }
Would it be better to use firstOrFail() so that an exception is thrown at this point if the user asks for a non-existent Role name?
Similarly in other methods such as TeamRepository find() method
public function findByName($name) { return $this->model->where('name', $name)->first(); }
Would it be better to use firstOrFail() ?
Just a suggestion, keep up the good work!
thx
Getting this on a fairly vanilla install of L5.2.29
@input_maker_label('Email') @input_maker_create('email', ['type' => 'string'], $user) @input_maker_label('Name') @input_maker_create('name', ['type' => 'string'], $user) @input_maker_label('Phone') @input_maker_create('meta[phone]', ['type' => 'string'], $user) @input_maker_label('I agree to receive marketing information') @input_maker_create('meta[marketing]', ['type' => 'checkbox'], $user) @input_maker_label('Terms & Conditions') @input_maker_create('meta[terms_and_cond]', ['type' => 'checkbox'], $user)
I've followed the install sequence to the letter. Any reason the Input Maker is broken?
Also getting a similar effect with the CRUD builder & pregenerated form maker:
@form_maker_object($random, FormMaker::getTableColumns('random'))
I have a laravel running the version of it is Laravel Framework version 5.3.6 and I have laracogs at his version 2.1.1.
After running the command:
php artisan crudmaker:new posts --api --ui=bootstrap --migration --schema="id:increments,name:string,body:text,startdate:date,owner_id:integer|unsigned" --relationships="hasOne|\App\Models\User|owner"
I noticed the following:
I do not know if this is normal or not, but I suppose that is not, because on the documentation there is the following description:
This will add in the relationships to your models, as well as add the needed name_id field to your tables. Just one more thing you don't have to worry about.
Hi,
Following the documentation, when installing on a clean Laravel, I get the following when doing the php artisan migrate --seed:
[ReflectionException]
Class RolesTableSeeder does not exist
$ php artisan laracogs:api
[InvalidArgumentException]
The "/www/xor/vendor/yab/laracogs/src/Console/../Api" directory does not exist.
changed all occurences of 'Api' in src\Console\Api.php to 'API' fixed it
After running php artisan laracogs:starter
I get
Update the model in: config/auth.php, database/factory/ModelFactory.php
App\Repositories\User\User::class
Build something worth sharing!
Don't forget to run:
composer dump
Then:
artisan migrate
while the docs say:
Update the App\User::class in: 'config/auth.php' and 'database/factory/ModelFactory.php' to this:
App\Models\User::class
The generator uses the docs style.
"Add to the app/Http/Kernel.php under routeMiddleware:"
instead of
"Add to the app/Http/Kernal.php under routeMiddleware:"
Hi,
i've setup Laracogs for my project and i'm already using it.
Now, i would like to create some API (right now, i have used just web routing).
So, i have moved my route in routes/api.php (because is an AJAX call).
When i call this (jquery, with $.ajax POST) i get the error:
Class App\Repositories\User\User::class does not exist
I have follow the guide on how setup Laracogs for API (JWT) and i have also changed the class in 'user' => '\App\Repositories\User\User::class',
inside jwt.php
Tried to run:
php artisan crudmaker:new Bike --migration --schema="id:increments,title:string,author:string"
console returns error:
6/7 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░] 85%
[Exception]
Unable to generate your CRUD: Undefined offset: 2
Sysinfo:
Laravel Framework version 5.3.18
laracogs version 2.1
PHP 5.6
Laravel log displays:
[2016-10-14 14:46:29] local.ERROR: exception 'Exception' with message 'Unable to generate your CRUD: Undefined offset: 2' in /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/yab/crudmaker/src/Console/CrudMaker.php:241
Stack trace:
#0 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/yab/crudmaker/src/Console/CrudMaker.php(197): Yab\CrudMaker\Console\CrudMaker->createCRUD(Array, '', 'Bike', Array)
#1 [internal function]: Yab\CrudMaker\Console\CrudMaker->handle()
#2 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/laravel/framework/src/Illuminate/Container/Container.php(508): call_user_func_array(Array, Array)
#3 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array)
#4 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/symfony/console/Command/Command.php(256): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/symfony/console/Application.php(820): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/symfony/console/Application.php(187): Symfony\Component\Console\Application->doRunCommand(Object(Yab\CrudMaker\Console\CrudMaker), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/symfony/console/Application.php(118): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /Users/michielzoer/Projecten/GIT/moodstudios-app/project/artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 {main}
Guys, this repo is bananas, great work. One small thing so far, at the end of running laracogs:starter it says:
Don't forget to run:
composer dump
Then:
artisan migration
It should be artisan migrate
I'm brand new to laravel and laracogs so I very well may have missed something, but after initiating a brand new laravel project and adding the laracogs starter and bootstrap I have an issue with the layout where the main column is clearing or being pushed under the side column (screenshot attached). Any thoughts?
Hi,
I generated a Laracogs service using the following command:
php artisan crudmaker:new people --api --ui=bootstrap --withFacade --migration --schema="id:increments,user_id:integer|unsigned,title:string|nullable,first_name:string,last_name:string" --relationships="belongsTo|user|user"
This created the update()
functions within the controller and service, which look like this:
Controller:
/**
* Update the people in storage.
*
* @param \Illuminate\Http\PersonRequest $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(PersonRequest $request, $id)
{
$result = $this->service->update($id, $request->except('_token'));
if ($result) {
return back()->with('message', 'Successfully updated');
}
return back()->with('message', 'Failed to update');
}
Service:
/**
* Model update.
*
* @param int $id
* @param array $input
* @return bool
*/
public function update($id, $input)
{
return $this->model->update($id, $input);
}
All good so far... If I do a dd($id, $input)
in the service update()
function, before calling $this->model->update($id, $input)
I can see the correct database ID and input data - all works well so far.
However - when the $this->model->update($id, $input)
function is called, it throws the following error from Eloquent:
Type error: Argument 1 passed to Illuminate\Database\Eloquent\Model::update() must be of the type array, string given, called in /home/vagrant/Sites/laravel/app/Services/PersonService.php on line 107
Line 107 is the call to $this->model->update($id, $input)
.
Eloquent isn't expecting an $id
string for a model update call. It's expecting to operate on an already-defined object. I can fix it by rewriting the Service update()
function as follows:
public function update($id, $input)
{
$person = $this->model->find($id);
return $person->update($input);
}
Am I doing something wrong, or is this a Laracogs bug?
When I add a new user to the team and I go to that user, it doesn't actually show the team in the teams page.
on the following pages:
user/settings
/admin/users/3/edit
ErrorException in InputMaker.php line 199:
Trying to get property of non-object (View: ........./resources/views/user/meta.blade.php) (View: ............../resources/views/user/meta.blade.php)
The generated view for inviting users :
@input_maker_create('roles', ['type' => 'relationship', 'model' => 'App\Repositories\Role\Role', 'label' => 'label'])
Is returning the integer Id of the role dropdown (normal behaviour iirc), which UserService.php
public function create($user, $password, $role = 'member', $sendEmail = true)
{
try {
DB::beginTransaction();
// create the user meta
$this->userMetaRepo->findByUserId($user->id);
// Set the user's role
$this->userRepo->assignRole($role, $user->id);
is passing to UserRepository.php which is using a method 'findByName' on Repositories\Role.php.
public function assignRole($roleName, $userId)
{
$role = Role::findByName($roleName);
$user = $this->model->find($userId);
$user->roles()->attach($role);
}
This causes the user to not be assigned a role.
Because Laracogs use as label the array key and as value the array value, you could have some issue when you try to fill the options with a query on a table where there are more labels with the same values.
Eg.
(Id, name)
0, "A"
1, "B"
2, "A"
You will get from a query converted in array the follow result
["B"=>1,"A"=>2]
I think that the values should be unique over the labels.
When I run npm install
it stuck at node scripts/install.js
. When I re run it I got this:
npm WARN optional Skipping failed optional dependency /chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: [email protected] npm WARN optional Skipping failed optional dependency /gulp-watch/chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: [email protected]
and then run gulp
[10:59:42] Using gulpfile /var/www/html/testlaracog/gulpfile.js [10:59:42] Starting 'default'... [10:59:42] Starting 'sass'... Bus error (core dumped)
Can anyone help?
Thanks
When going to https://laracogs.com/ and click the link of features, it shows not found error. I think you need to add /Kit/ within the url mate :)
When using the CRUD builder to create a table/controller/etc, the blade template created by the Bootstrap creator refers to "name.delete" - this then causes an error when displaying all the items, but changing it to "name.destroy" works as expected.
I've just started poking around with this project. I was wondering if I use the crud generator to create the views for a table is the any config options to customize what the view will be like?
For example in my case I have boolean values that I would like to be represented by check boxes. So in the form-maker.php config file I changed 'boolean' => 'number',
to 'boolean' => 'checkbox'
, so I was wondering if there was a way to customize the behavior of the crud generator.
Attempting to use the crud command:
$ php artisan laracogs:crud news
or
$ php artisan laracogs:crud news --migration
Both return the following:
[ErrorException]
array_merge(): Argument #2 is not an array
App\Listeners\UserRegisteredEmail should be App\Listeners\UserRegisteredEmailListener.php.
Have renamed it and now it´s possible to create a User.
I installed Laracogs starter, bootstrap and notifications, follow the doc in all steps and when i try to add new Notification i get this error:
FatalErrorException in LaravelCrypto.php line 9:
Class 'Yab\Laracogs\Encryption\LaracogsEncrypter' not found
I checked the package is present and have the right namespace namespace Yab\Laracogs\Encryption;
but the file that contain class LaracogsEncrypter
is not present anywhere.
What i can do? What hapenned?
i'm on windows 10
php 5.6.12
laravel 5.2.41
laracogs v1.9.37
In the docs of the Billing kit it has this line
Notes
You may want to switch the line in the view vendor.receipt to:
To: {{ $user->user()->email }}
We do this because rather than bind the billing to the User, we bound it to the UserMeta.
Where is this view?
These docs could use some updating to include the steps that are listed in the console output after running php artisan laracogs:notifications
. I don't have the steps on me a the moment because I don't have the project open; if needed I can get it.
I faced this issue initially when setting up Laracogs, turned out to be an issue with xdebug.max_nesting_level configuration.
This is solved by adding
ini_set('xdebug.max_nesting_level', 500);
to bootstrap > autoload.php
I'm following the steps for beginning with Laracogs, I successfully add the starter kit, and then move to add Semantic UI.
I run php artisan laracogs:semantic
and am presented with these instructions:
You will need to install semantic-ui:
npm install semantic-ui
When prompted set the directory to:
semantic
Then run:
cd semantic && gulp build
Then run:
cd ../ && gulp
Make sure you set the PagesController@dashboard to use the following view:
'dashboard.main'
Finished setting up semantic-ui in your app
I successfully run npm install semantic-ui
.
When running cd semantic && gulp build
, I get the following error:
Potentially unhandled rejection [2] TypeError: Cannot call method 'match' of undefined
at DestroyableTransform.module.exports.settings.plumber.less.errorHandler (/home/cdehaan/prism-laracogs/semantic/tasks/config/tasks.js:96:29)
at DestroyableTransform.emit (events.js:117:20)
at afterTransform (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:74:26)
at TransformState.afterTransform (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:58:12)
at /home/cdehaan/prism-laracogs/node_modules/gulp-less/index.js:58:14
at tryCatchReject (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/accord/node_modules/when/lib/makePromise.js:845:30)
at runContinuation1 (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/accord/node_modules/when/lib/makePromise.js:804:4)
at Rejected.when (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/accord/node_modules/when/lib/makePromise.js:625:4)
at Pending.run (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/accord/node_modules/when/lib/makePromise.js:483:13)
at Scheduler._drain (/home/cdehaan/prism-laracogs/node_modules/gulp-less/node_modules/accord/node_modules/when/lib/Scheduler.js:62:19)
And then when I get to the cd ../ && gulp
step, I get the following output:
[cdehaan@localhost prism-laracogs]$ gulp
[12:00:23] Using gulpfile ~/prism-laracogs/gulpfile.js
[12:00:23] Starting 'default'...
[12:00:23] Starting 'copy'...
Fetching Copy Source Files...
- semantic/dist/semantic.min.css <-- Not Found
Saving To...
- public/css/semantic.min.css
[12:00:23] Finished 'default' after 41 ms
[12:00:23] Finished 'copy' after 44 ms
[12:00:23] Starting 'sass'...
Fetching Sass Source Files...
- resources/assets/sass/app.scss
Saving To...
- public/css/app.css
[12:00:23] gulp-notify: [Laravel Elixir] Sass Compiled!
[12:00:23] Finished 'sass' after 857 ms
[12:00:23] Starting 'copy'...
Fetching Copy Source Files...
- semantic/dist/semantic.min.js
Saving To...
- public/js/semantic.min.js
[12:00:23] Finished 'copy' after 15 ms
[12:00:23] Starting 'scripts'...
Fetching Scripts Source Files...
- resources/assets/js/app.js
Saving To...
- public/js/all.js
[12:00:24] gulp-notify: [Laravel Elixir] Scripts Merged!
[12:00:24] Finished 'scripts' after 635 ms
So semantic.min.css is not properly built.
Hi,
I have this error when I access after the login to the dashboard.
My database is seeded with all information.
How can I do ?
` public function boot()
{
$this->registerPolicies();
Gate::define('admin', function ($user) {
return ($user->roles->first()->name === 'admin'); // this line is the problem
});
Gate::define('team-member', function ($user, $team) {
return ($user->teams->find($team->id));
});
}`
P.S : I've done a composer dump-autoload and a composer update.
I'm on the last Laravel 5.3.*
Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.