Skip to content

Latest commit

 

History

History
138 lines (98 loc) · 5.52 KB

File metadata and controls

138 lines (98 loc) · 5.52 KB

KPI_Project

Track your Key Performance Indicators, Metrics and Business Data with insightful KPI Dashboards and Reports Build Status Total Downloads Latest Stable Version

A Laravel-Nuxt starter project template.

All these tools in one place

A dashboard icon showing a dark theme and 4 graphs Dashboards
Quickly bring your data to life with interactive charts and graphs

        <p>
            <amp-img alt="A report icon displaying a blue line graph" width="180px" height="130px" src="proxy.php?url=https%3A%2F%2Fcdn.simplekpi.com%2Fimages%2FSVGs%2FHome-KPI-Reports-Tool.svg" class="i-amphtml-element i-amphtml-layout-fixed i-amphtml-layout-size-defined i-amphtml-built i-amphtml-layout" i-amphtml-layout="fixed" style="width: 180px; height: 130px;">
            <img decoding="async" alt="A report icon displaying a blue line graph" src="proxy.php?url=https%3A%2F%2Fcdn.simplekpi.com%2Fimages%2FSVGs%2FHome-KPI-Reports-Tool.svg" class="i-amphtml-fill-content i-amphtml-replaced-content"></amp-img>
            <span><strong>Reports</strong><br>Create and share meaningful insights with teams and colleagues</span>
        </p>
        <p>
            <amp-img alt="An analytics icon of a monitor showing a magnifiying glass on top of a chart" width="180px" height="130px" src="proxy.php?url=https%3A%2F%2Fcdn.simplekpi.com%2Fimages%2FSVGs%2FHome-KPI-Analytics-Tool.svg" class="i-amphtml-element i-amphtml-layout-fixed i-amphtml-layout-size-defined i-amphtml-built i-amphtml-layout" i-amphtml-layout="fixed" style="width: 180px; height: 130px;">
            <img decoding="async" alt="An analytics icon of a monitor showing a magnifiying glass on top of a chart" src="proxy.php?url=https%3A%2F%2Fcdn.simplekpi.com%2Fimages%2FSVGs%2FHome-KPI-Analytics-Tool.svg" class="i-amphtml-fill-content i-amphtml-replaced-content"></amp-img>
            <span><strong>Analytics</strong><br>Analyze the ups and downs to make sense of your data</span>
        </p>
    </div>

Features

rack your Key Performance Indicators, Metrics and Business Data with insightful KPI Dashboards and Reports

  • Nuxt 2
  • Laravel 8
  • SPA or SSR
  • Socialite integration
  • VueI18n + ESlint + Bootstrap 4 + Font Awesome 5
  • Login, register, email verification and password reset

Installation

  • composer create-project --prefer-dist cretueusebiu/laravel-nuxt
  • Edit .env and set your database connection details
  • (When installed via git clone or download, run php artisan key:generate and php artisan jwt:secret)
  • php artisan migrate
  • npm install

Usage

Development

# start Laravel
php artisan serve

# start Nuxt
npm run dev

Access your application at http://localhost:3000.

Production

npm run build

Enable SSR

  • Edit client/nuxt.config.js and set ssr: true
  • Edit .env to set APP_URL=http://api.example.com and CLIENT_URL=http://example.com
  • Run npm run build and npm run start

Nginx Proxy

For Nginx you can add a proxy using the follwing location block:

server {
    location / {
        proxy_pass http://http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Process Manager

In production you need a process manager to keep the Node server alive forever:

# install pm2 process manager
npm install -g pm2

# startup script
pm2 startup

# start process
pm2 start npm --name "laravel-nuxt" -- run start

# save process list
pm2 save

# list all processes
pm2 l

After each deploy you'll need to restart the process:

pm2 restart laravel-nuxt 

Make sure to read the Nuxt docs.

Socialite

This project comes with GitHub as an example for Laravel Socialite.

To enable the provider create a new GitHub application and use https://example.com/api/oauth/github/callback as the Authorization callback URL.

Edit .env and set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET with the keys form your GitHub application.

For other providers you may need to set the appropriate keys in config/services.php and redirect url in OAuthController.php.

Email Verification

To enable email verification make sure that your App\User model implements the Illuminate\Contracts\Auth\MustVerifyEmail contract.

Notes

  • This project uses router-module, so you have to add the routes manually in client/router.js.
  • If you want to separate this in two projects (client and server api), move package.json into client/ and remove config path option from the scripts section. Also make sure to add the env variables in client/.env.

Changelog

Please see CHANGELOG for more information what has changed recently.