Git Product home page Git Product logo

vue-laravel-file-manager's Introduction

Laravel file manager (Frontend)

Backend - Laravel package - alexusmai/laravel-file-manager

Laravel File Manager

New in version 3

  • Vue.js 3
  • Bootstrap 5.3
  • Bootstrap icons

Installation

NPM

$ npm install laravel-file-manager --save

Usage

IF your App using Vuex store

import { createApp } from 'vue';
import { createStore } from 'vuex';

// Source main component
import Main from './components/Main.vue';
import FileManager from 'laravel-file-manager'
// your Vuex store
import store from './path-to-your-store/store'  

createApp(Main).use(store).use(FileManager, {store}).mount('#id');

ELSE you need to create a new vuex instance

import { createApp } from 'vue';
import { createStore } from 'vuex';

// Source main component
import Main from './components/Main.vue';
import FileManager from 'laravel-file-manager'

// Create a new store instance.
const store = createStore();

createApp(Main).use(store).use(FileManager, {store}).mount('#id');

The application store module will be registered under the name 'fm'

Now vue component is registered and you can use it in your app

<file-manager></file-manager>

You can overwrite some default settings

// In the new version 2.4.0 and higher
<file-manager v-bind:settings="settings"></file-manager>

...
// settings object structure
computed: {
        settings() {
            return {
                // axios headers
                headers: {
                  'X-Requested-With': 'XMLHttpRequest',
                  Authorization: `Bearer ${window.localStorage.getItem('user-token')}`,
                },
                baseUrl: 'http://test.loc/file-manager/',   // overwrite base url Axios
                windowsConfig: 2,                           // overwrite config
                lang: 'de',                                 // set language
                translation: {                              // add new translation
                    name: de,
                    content: {
                        about: 'Über',
                        back: 'Zurück',
                        ... see lang file structure
                    },
                },
            };
        },
    }
...


Available Props

settings - Object

Attribute Type Example Required Description
headers Object {'X-Requested-With': 'XMLHttpRequest'} No Axios Headers
baseUrl String 'http://my_url:80/file-manager/' No Axios base URL
windowsConfig Int 2 No 1 - only one manager, 2 - manager with folder tree, 3 - two managers
lang String 'de' No Set language
translation Object { ... see lang file structure }, No Add new translation

CSRF, Bootstrap, Bootstrap icons

Don't forget to add a csrf token to head block in your Laravel view and add bootstrap 5 and bootstrap icons 5 styles

<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Example -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">

Laravel VITE environment variables

// set baseUrl
VITE_LFM_BASE_URL=http://my-url.loc/file-manager/

// if you don't want to use csrf-token - you can off it
VITE_LFM_CSRF_TOKEN=OFF

vue-laravel-file-manager's People

Contributors

alexusmai avatar cagrig avatar d34dlym4n avatar gaga86 avatar henrysource avatar lkloon123 avatar luindayk avatar mige avatar n1ebieski avatar siebsie23 avatar tumtum avatar va-fernandes avatar vahidalvandi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-laravel-file-manager's Issues

UI breaks when there are huge number of files.

  • In my folder I have 1000 files.
  • I have wrapped the file-manager component in a div having a fixed height of say 600px.
  • Final result is this.
    image
  • Any workaround for this?
  • Please ignore if this is not an issue related to this package

vue-laravel-file-manager license ?

Hello !

The license to laravel-file-manager is MIT, but there doesn't seem to be any license to vue-laravel-file-manager. To all intents, vue-laravel-file-manager seems proprietary right now.
Is it the same license as laravel-file-manager ? Or is it governed by another license ? Thanks for your clarification.

Best regards !

Xyrop

jwt.auth - Images are not shown due to lack of authorization header.

Hello!
I am trying to use your awesome file manager but I ran into two problems.
The first one: Images are not shown due to lack of authorization header. I can upload and delete images but the images themselves are not shown. Error in console -
Cross-Origin Read Blocking (CORB) blocked cross-origin response http://api-a2key/file-manager/thumbnails?disk=images&path=logo.png with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.
This is because the server's answer is {"error":"Unauthorized"} as I use middleware on the server.
When I try the same file-manager's link in Postman with header Authorization: Bearer 'token is here' I see the image needed. As I can see this header is not used for images src requests in my Vue app. When I remove the middleware - everything is shown correctly.

My app config:

Vue.use(FileManager, {
  store,
  baseUrl: process.env.VUE_APP_FILE_MANAGER_API,
  windowsConfig: 2
})

axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
axios.defaults.headers.common['Authorization'] = 'Bearer ' + window.localStorage.token
axios.defaults.baseURL = process.env.VUE_APP_ROOT_API

I tried to add headers: {'Authorization': 'Bearer ...'} to config, but that didn't help.

The second: can I initialize and use file manager in a separate component? There are a lot of dynamic imports in my app and I would like not to include file-manager in app.js as there are client and admin pages.

it can't using in vue project.

use the projec at vue. will throw error:

[Vue warn]: Error in render: "TypeError: Cannot read property 'back' of undefined"

found in

---> at node_modules/laravel-file-manager/src/components/blocks/Navbar.vue
at node_modules/laravel-file-manager/src/FileManager.vue
at src/views/cloud/FileManager/index.vue
at src/layout/components/AppMain.vue
at src/layout/index.vue
at src/App.vue

This is the vue page.

<script> export default { data() { return { settings: { // axios headers headers: { 'X-Requested-With': 'XMLHttpRequest', Authorization: `Bearer ${window.localStorage.getItem('user-token')}` }, baseUrl: 'http://localhost:8013/api/cloud/cloudDiskFileInfo/', windowsConfig: 2, lang: 'zh_CN', translation: { name: 'zh_CN', content: { about: '关于', back: '后退' } } } } } } </script>

Cannot read property 'status' of undefined

Hello sir,
I have followed your installation and i'm happy to use your package. But one little problem that confuse me was i got error on console called like this tittle, "cannot read property 'status' of undefined" means something object named status was undefined.

Here some picture that i captured for sake to inform you.

Below is the module package frontend look
file-frontends

Console return undefined error on status
console error

Several file-manager settings in laravel config. Filesystem config set to default
file-manager config 1
file-manager config 2
file-manager config 3
file-manager config 4

Thank you for your help sir

Save cropped image not working

Hi,
It shown save successfully but it not saved actually, the image still remain uncropped.

thanks for the great package btw 👍

Need help for develop vue on package

I resntly used your file manage it is awesome and very good. I work with vue in self project . I need help . When i use vue in packages laravel i create app in this path and conenct it to main webpack it work but i think is not good method for develop.

What is your idea for use vue in packages in laravel and create prod version like your file manager.

Thank you very much

Unexpected token

I'm just trying to install this package but I got this error:

ERROR in ./node_modules/laravel-file-manager/src/FileManager.vue 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loader
s are configured to process this file. See https://webpack.js.org/concepts#loade
rs
> <template>
|   <div class="fm d-flex flex-column"
|        v-bind:class="{ 'fm-full-screen': fullScreen }">
 @ ./node_modules/laravel-file-manager/src/init.js 2:0-44 13:32-43
 @ ./resources/assets/js/app.js

I integrated this in an app that was compiling well also .vue files.

Do you have any idea about this error?

File Manager Not showing

I tried for many hours each day and I am not able to get this to load.

I installed vue and vuex and put this in my app.js and also I installed the filemanager through node.

import Vue from 'vue';
import Vuex from 'vuex';
import FileManager from 'laravel-file-manager'
Vue.use(Vuex);
// create Vuex store, if you don't have it
const store = new Vuex.Store();
Vue.use(FileManager, {store});

I included bootstrap, app.js and app.css, font awesome and the file-manager tag. I added a web route as well. And I am getting a blank screen.

I was able to get vuejs working through the default laravel Component, but filemanager isn't loading for me.

I also ran npm run watch as well.

Empty response from this.$store.dispatch('fm/upload'

Hi. I init your app in my resources/js/app.js :
`
window.Vue = require('vue');
import Vuex from 'vuex';
import FileManager from 'laravel-file-manager'

//Registration FileManager component
Vue.use(Vuex);
const store = new Vuex.Store();
Vue.use(FileManager, {store});

const app = new Vue({
el: '#app',
store:store
});
`

FileManager loaded ok. But when I try upload some image I get response:

app.js:86753 Uncaught (in promise) TypeError: Cannot read property 'data' of undefined`

I debug it in:
uploadFiles() { // if files exists if (this.countFiles) { // upload files this.$store.dispatch('fm/upload', { files: this.newFiles, overwrite: this.overwrite, }).then((response) => { console.log(response); // if upload is successful if (response.data.result.status === 'success') { // close modal window this.hideModal(); } }); } },
in Upload.vue
I missed something? Thank you for yours sugestions.

From where do I have to run

npm install laravel-file-manager --save

from

root laravel project folder

or

from resources/js

I compile my css and js with command

npm run dev

from root folder

initial folder and file filter

Hello. My goal to get several users with own folders where they could store audio, video and images. So i created laravel local storage with folders for example teacher1, teacher2 and so on.
With ACL i can make these folders accessed by certain user. But when i open filemanager window i got always root folder. Is there any props that i could open initial folder for user? And i can't find in documentation am i able to set filetype filters to show only certain files (images, audios, videos)

Beginner with npm I have problem to setup your package in a default laravel project

app.js

====================================================
require('./bootstrap');

window.Vue = require('vue');
import Vue from 'vue';
import Vuex from 'vuex';
import FileManager from 'laravel-file-manager';

Vue.use(Vuex);

// create Vuex store, if you don't have it
const store = new Vuex.Store();

Vue.use(FileManager, {store});
/**

  • The following block of code may be used to automatically register your
  • Vue components. It will recursively scan this directory for the Vue
  • components and automatically register them with their "basename".
  • Eg. ./components/ExampleComponent.vue ->
    */

Vue.component('example-component', require('./components/ExampleComponent.vue'));

// const files = require.context('./', true, /.vue$/i)
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key)))

/**

  • Next, we will create a fresh Vue application instance and attach it to
  • the page. Then, you may begin adding components to this application
  • or customize the JavaScript scaffolding to fit your unique needs.
    */

const app = new Vue({
el: '#app'
});

=======================================================

C:\laragon\www\homestead>npm run dev

@ dev C:\laragon\www\homestead
npm run development

@ development C:\laragon\www\homestead
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

95% emitting

ERROR Failed to compile with 1 errors 16:18:20

error in ./node_modules/laravel-file-manager/src/components/blocks/Notification.vue

(Emitted value instead of an instance of Error)
Error compiling template:

{{ notification.message }}
  • Do not use v-for index as key on children, this is the same as not using keys.

@ ./node_modules/laravel-file-manager/src/components/blocks/Notification.vue 10:23-242
@ ./node_modules/babel-loader/lib?{"cacheDirectory":true,"presets":[["env",{"modules":false,"targets":{"browsers":["> 2%"],"uglify":true}}]],"plugins":["transform-object-rest-spread",["transform-runtime",{"polyfill":false,"helpers":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./node_modules/laravel-file-manager/src/FileManager.vue
@ ./node_modules/laravel-file-manager/src/FileManager.vue
@ ./node_modules/laravel-file-manager/src/init.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
Asset Size Chunks Chunk Names
/js/app.js 2.9 MB 0 [emitted] [big] /js/app
/css/app.css 214 kB 0 [emitted] /js/app

ERROR in ./node_modules/vue-loader/lib/template-compiler?{"id":"data-v-dc07b964","hasScoped":false,"buble":{"transforms":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/laravel-file-manager/src/components/blocks/Notification.vue
(Emitted value instead of an instance of Error)
Error compiling template:

{{ notification.message }}
  • Do not use v-for index as key on children, this is the same as not using keys.

@ ./node_modules/laravel-file-manager/src/components/blocks/Notification.vue 10:23-242
@ ./node_modules/babel-loader/lib?{"cacheDirectory":true,"presets":[["env",{"modules":false,"targets":{"browsers":["> 2%"],"uglify":true}}]],"plugins":["transform-object-rest-spread",["transform-runtime",{"polyfill":false,"helpers":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./node_modules/laravel-file-manager/src/FileManager.vue
@ ./node_modules/laravel-file-manager/src/FileManager.vue
@ ./node_modules/laravel-file-manager/src/init.js
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @ development: cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\grego\AppData\Roaming\npm-cache_logs\2018-12-22T15_18_21_112Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @ dev: npm run development
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\grego\AppData\Roaming\npm-cache_logs\2018-12-22T15_18_21_150Z-debug.log

C:\laragon\www\homestead>

Show only specific extension file type in file manager list

Hi,

This is very powerful package with every functionality needed.
There are few configuration that would be awesome to have in this project.

  1. It would be great if there is a way to show only specific filetype files in explorer.
  2. It would be great to disable few features like download/edit/delete etc.
  3. Drag and drop upload file on explorer view. (This is on upload file model but not mentioned to drop a file).
  4. Default files view (List/Grid).
  5. Add context menu option to perform a custom event.

This is just some suggestions for improvement.

Vuex Error

import FileManager from 'laravel-file-manager'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store()

Vue.use(FileManager, {store})

We are getting Vuex error when initialize new Vuex store.

vuex.esm.js?358c:97 Uncaught Error: [vuex] getters should be function but "getters.fm/diskList" in module "fm" is [].

have error 500 in same images

[2019-12-02 16:49:00] local.ERROR: Unable to init from given binary data. {"userId":8,"exception":"[object] (Intervention\\Image\\Exception\\NotReadableException(code: 0): Unable to init from given binary data. at /media/pc3/projects/laravel/master/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:115)

A technique question

Hi my friend, I am trying to create my own file manager. But I have no any experience in this job. I look at on your code for take an insight but I didn't know how you parse json for show file or folders. In other words, I want to know what object do you get from back-end? And, how do you parse it? Example:
You get from server:

{
"picture" : 
  {
    "old": {"type":"dir","url":"www.example.con/..."},
    "image1":{"type": "jpeg", "url": "..."},
  }
}

On front-end:

directories= this.getDirectories();
for ([name, desc] of directories) {
  //handling
} 

Is your app algorithm like this? Or, are there a better way?

Base URL not working

Hi,
I have installed Laravel in sub directory. The base URL always goes to main site.

This is my code in app.js

import Vue from 'vue';
import Vuex from 'vuex';
import FileManager from 'laravel-file-manager'

Vue.use(Vuex);

// create Vuex store, if you don't have it
const store = new Vuex.Store();

Vue.use(FileManager, {
store, // required
baseUrl: 'http://mysite.com/newplatform/public/file-manager/initialize',
});

window.fm = new Vue({
el: '#fm',
store,
template: ''
});

But it still hits the url "http://mysite.com/file-manager/initialize"

I have also set this in .env

MIX_LFM_BASE_URL=http://mysite.com/newplatform/public/file-manager/initialize

But it's still not working. Can you please take a look?
Thanks

Как добавить выбор файла в модальном окне?

Добрый день! Отличный файл менеджер! Спасибо за него)
Как открыть файл менеджер в модальном окне? И чтобы была возможность выбора файла? И как отследить событие выбора файла? Но сделать это внутри компонента vue...

dynamics multiples file manager

hello I have a component in vuejs where I have a dynamic button that creates many file managers
image

file manager is displayed correctly but...
when I try to capture the url of the file manager I get the following error
image

my code

<div class="col-12" v-for="(line, index) in lines" :key="index">
    <div class="form-group">
        <img v-lazy-src="line.image" src="" :id="'image-'+index" @load="getImage" :alt="line.image" class="img-thumbnail">
    </div>
    <div class="form-group">
        <button class="btn btn-outline-primary" type="button" :id="'button-image-'+index" @click="openGallery"><i class="fas fa-image"></i> Seleccionar Imagen de la Galeria</button>
    </div>
</div>

<script>
var n = 0;
export default{
    methods:{
        openGallery: function(event){
            window.open('../../file-manager/fm-button', 'fm', 'width=800,height=400')

            function fmSetLink($url) {
                //document.getElementById('image_label').value = $url;
                document.getElementById('image-' + this.n).src = $url;
                }
            });
        },

        getImage: function(){
            this.line.image = document.getElementById('image')
        },

        addLine: function() {
            this.lines.push({
                image:'',
                n:n++
            })
        },
    }
}
</script>

What am I doing wrong, I'm a novice help me pls

Need Informations concerning initialization of the file manager

Hello,

First of all, thank you for this beautiful project, it's very beautiful and well-built.

I need some information concerning the initialization of the file-manager. I need to initialize my file-manager in a specific disk ( it's fix : public ), and a specific folder (depends, for example /pictures/id_1145).
But I didn't found the way to configure my file-manager on this way.

I saw a previous issue and the demo you posted. But I don't find the way to request the opening directly on the specific folder.

Do I need to launch a store function after the initialization of the file-manager ? If so, which one and how can I know that the file-manager is initialized ?

I don't know if I'm clear, I hope you will be able to help me.

I've two last questions :

  • After the initialization of my file-manager in this specific folder, for example /pictures/id_1145, is it possible to avoid the user to exit of this folder, I mean, he can navigate on this folder and his children but not go back on his parent (/pictures).

  • Is it possible to initialize the file manager if a specific way : hide the hidden files ( the eye button ) and in grid (not in list).

Thanks for your answers
Lucas

Routes

Wonder how to use VueRouter and actually change url when navigating to folders in FileManagers. I want to use it like standalone, so this opportunity will be great

Help Wanted

Hello, how to implement this package in a laravel application with the laravel filemanager created by the same author.

Empty filename

Some files have empty filename (.gitignore, .env, .htaccess, etc.)
screenshot-gameap3 local-2018 11 16-17-15-59

Maybe change filename to basename? I think it looks better.
screenshot-gameap3 local-2018 11 16-17-20-06

Limit users actions

When you pass the contextMenu options I want to display the UI doesn't reflect them.
For example, I want my users to be able to copy or see the properties of the files. I pass the array with these options, but all the default options are still displayed

Vue.use(FileManager, {
    store,
    contextMenu:[
        [], 
        [{"name":"copy","icon":"far fa-copy"}],
        [],
        [{"name":"properties","icon":"far fa-list-alt"}]
    ]
});

How to pass data to vue-laravel-file-manager?

I want to use vue-laravel-file-manager. However I don't know what type of data is passed from the backend? And how to configure vue-laravel-file-manager to get data from the backend? Can you help me? Thanks!

How to make multiple managers

Hey, I saw that I can configurate more than one Disk, but I want to make it individualy, Ex:
3 disks, 3 diferent pages (and manager)

How can I do that?

Thx!

JSON edit error

I got errors when edit json file. When editing plain text files works fine.

json_error

[Vue warn]: Invalid prop: type check failed for prop "value". Expected String, got Object.

found in

---> <Codemirror>
       <TextEdit> at node_modules/laravel-file-manager/src/components/modals/views/TextEdit.vue
         <Modal> at node_modules/laravel-file-manager/src/components/modals/Modal.vue
           <FileManager> at node_modules/laravel-file-manager/src/FileManager.vue
             <Root>
warn @ app.js:24080
assertProp @ app.js:25119
validateProp @ app.js:25047
updateChildComponent @ app.js:26336
prepatch @ app.js:27631
patchVnode @ app.js:29412
updateChildren @ app.js:29309
patchVnode @ app.js:29423
updateChildren @ app.js:29309
patchVnode @ app.js:29423
patch @ app.js:29583
Vue._update @ app.js:26157
updateComponent @ app.js:26275
get @ app.js:26629
run @ app.js:26706
flushSchedulerQueue @ app.js:26468
(anonymous) @ app.js:25324
flushCallbacks @ app.js:25245
app.js:24080 [Vue warn]: Error in callback for watcher "value": "TypeError: string.split is not a function"

found in

---> <Codemirror>
       <TextEdit> at node_modules/laravel-file-manager/src/components/modals/views/TextEdit.vue
         <Modal> at node_modules/laravel-file-manager/src/components/modals/Modal.vue
           <FileManager> at node_modules/laravel-file-manager/src/FileManager.vue
             <Root>
warn @ app.js:24080
logError @ app.js:25224
globalHandleError @ app.js:25219
handleError @ app.js:25208
run @ app.js:26722
flushSchedulerQueue @ app.js:26468
(anonymous) @ app.js:25324
flushCallbacks @ app.js:25245
app.js:25228 TypeError: string.split is not a function
    at splitLinesAuto (app.js:1456)
    at Doc.splitLines (app.js:6639)
    at Doc.<anonymous> (app.js:6288)
    at Doc.setValue (app.js:4103)
    at CodeMirror.setValue (app.js:9866)
    at VueComponent.handerCodeChange (app.js:80291)
    at VueComponent.value (app.js:80291)
    at Watcher.run (app.js:26720)
    at flushSchedulerQueue (app.js:26468)
    at Array.<anonymous> (app.js:25324)

Can't resolve 'scss-loader'

Using Vue 2.6.10.
Vuex 2.1.1
Webpack 1.14.0

after I import FileManager in app.js like below and run gulp,
import FileManager from 'laravel-file-manager';

I got the following error.

image
Are there any recommendations?
Thank you.

Filenames sanitizing

You can have sanitizing strings to be used as filenames, or at least avoid whitespace and accented characters?

Directory selected by param (disk and path)

Hi Dev master,
Is this library has anyway to selected default location of directory by using param disk and path ?

for example: if I set setting disk: diskA / path: directoryA/folderA, Can this app default at diskA/directoryA/folderA?

Thank you.

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.