# laravue-core
**Repository Path**: xingyk/laravue-core
## Basic Information
- **Project Name**: laravue-core
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-04-14
- **Last Updated**: 2021-04-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Laravue Core
The Laravel package to provide core functionalities for a beautiful [Laravel dashboard](https://laravue.dev)
Demo: https://core.laravue.dev
## Getting Started
[Laravue](https://github.com/tuandm/laravue) provides necessary Element UI and rich features for an enterprise admin dashboard, therefore it's highly recommended to use for starting a project. The following instructions are for intergrating core features of Laravue to existing Laravel project or to experiement with it.
### Prerequisites
[Laravue](https://github.com/tuandm/laravue) is built on top of [Laravel](https://laravel.com) and so you have to check [Laravel's system requirement](https://laravel.com/docs/5.8/installation#server-requirements) and make sure your your [NodeJS](https://nodejs.org/en/) is ready before starting.
### Installing
Install laravue-core package with `composer`
```
composer require tuandm/laravue-core
```
#### 1.a Setup Laravue with all-in-one command
```
php artisan laravue:setup
```
This command will do these steps:
- Setup JWT secret and API endpoint
- Publish Laravue vendor packages/assets
- Install NPM dependencies
- Create .babelc file (if it doesn't exist)
- Setup webpack.mix.js (please backup this file to make sure the current setting will not be lost)

#### 1.b Manual setup
It's recommended to use [laravue:setup command](#setup-laravue). If you want to manually install, you can do following setps:
##### .env file
Generate JWT secret for authentication
```
php artisan jwt:secret
```
Add these two lines to `.env` file
```
BASE_API=/api
MIX_BASE_API="${BASE_API}"
```
##### Publish vendor packages/assets
```
php artisan vendor:publish --provider="Tuandm\Laravue\ServiceProvider" --tag="laravue-core"
php artisan vendor:publish --provider="Tuandm\Laravue\ServiceProvider" --tag="laravue-asset"
```
##### Add NPM dependencies
```
npm add babel-plugin-syntax-dynamic-import babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx eslint eslint-loader eslint-plugin-vue laravel-mix-eslint vue-template-compiler svg-sprite-loader --save-dev
npm add element-ui js-cookie normalize.css nprogress vuex vue-count-to vue-i18n vue-router
npm install # To make sure everything is set
```
Please check [package.json sample](https://github.com/tuandm/laravue-core/tree/master/package.json.sample)
##### Webpack.mix.js configuration
We need to modify the webpack.mix.js to work with Laravue package, please refer to [webpack.mix.js sample](https://github.com/tuandm/laravue-core/tree/master/webpack.mix.js.sample)
Or simply run this command to generate recommendation version.
```
php artisan laravue:webpack
```
##### Babel
Laravue requires babel to build the packages. Usually, `.babelrc` will be generated with [laravue:setup command](#setup-laravue). Please manual add required plugins to `.babelrc` file if your project already uses it. Sample `.babelrc` can be found [here](https://github.com/tuandm/laravue-core/tree/master/.babelrc.sample)
#### 2. Config API guard
Open `config/auth.php` and modify as below
```
# Change default auth guard to api
'defaults' => [
'guard' => 'api',
],
...
# Use JWT driver for api guard
'guards' => [
....
'api' => [
'driver' => 'jwt',
....
# Use Laravue User model to authenticate
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Tuandm\Laravue\User::class,
],
```
Please refer to [auth.php sample](https://github.com/tuandm/laravue-core/tree/master/src/config/auth.php.sample)
#### 3. Database
Laravue core requires `users.role` field, consider to run migration if neccessary
```
php artisan migrate
```
#### 4. Sample data
This database seeder will insert 3 test users, you can ignore this step if you have data already.
```
php artisan db:seed --class=Tuandm\\Laravue\\Database\\Seeds\\DatabaseSeeder
```
### Start development
```
npm run dev # or npm run watch
```
### Build production
```
npm run production
```
## Running the tests
- Tests system is under development.
## Built with
* [Laravel](https://laravel.com/) - The PHP Framework For Web Artisans
* [VueJS](https://vuejs.org/) - The Progressive JavaScript Framework
* [Element](https://element.eleme.io/) - A Vue 2.0 based component library for developers, designers and product managers
* [Vue Admin Template](https://github.com/PanJiaChen/vue-admin-template) - A minimal vue admin template with Element UI
## Contributing
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/tuandm/laravue-core/tags).
## Authors
* **Tuan Duong** - *Initial work* - [tuandm](https://github.com/tuandm)
See also the list of [contributors](https://github.com/tuandm/laravue-core/contributors) who participated in this project.
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details
## Acknowledgements
* [Laravue](https://laravue.dev) - A beautiful dashboard for Laravel built by VueJS and ElementUI
* [vue-element-admin](https://panjiachen.github.io/vue-element-admin/#/) A magical vue admin which insprited Laravue project
* [tui.editor](https://github.com/nhnent/tui.editor) - Markdown WYSIWYG Editor
* [Echarts](http://echarts.apache.org/) - A powerful, interactive charting and visualization library for browser