Download the PHP package dainsys/timy2 without Composer
On this page you can find all versions of the php package dainsys/timy2. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dainsys/timy2
More information about dainsys/timy2
Files in dainsys/timy2
Package timy2
Short Description Add user's time tracker functionality to Laravel 7, Livewire and Bootstrap 4
License MIT
Informations about the package timy2
Dainsys Time Tracker Package
Add user's time tracker functionality to Laravel 7, Livewire and Bootstrap 4.
Installation
- Install with composer:
composer require dainsys/timy2
.Optional: The Package should be auto-discovered by Laravel. However, you could all register it in your config.app file within the providers array:
` You may want to publish the config file:
php artisan vendor:publish --tag=timy-config` to change default configuration. Pay attention to the option of creating default dispositions. - Next you may want to run migrations with command
php artisan migrate
.You could also publish the migrations with
php artisan vendor:publish --tag=tiy-migrations
and update them before migrating. - Add the
use Dainsys\Timy\Timeable
trait to yourUser
model. `This package relies on
laravel/ui
to handle authentication. Follow it's installation guide Authentication. We recommend to running the following command:php artisan ui --auth vue
. - As required per
laravel/livewire
, make sure you update your layout view: ` - Make sure the
App\Providers\BroadcastServiceProvider::class
is uncommented in theconfig.app
file. - Next paste the following routes in your
routes\channels.php
file: ` - Include the timy menu in your main nav-bar after you check for logged in users:
@include('timy::_timy-menu')
.Alternatively you can link to the following endpoints: Users: URL=
/timy/user
, NAME=user_dashboard
, GATEWAY(blade @can directive)=timy-user
Admin Users: URL=/timy/admin
, NAME=admin_dashboard
, GATEWAY(blade @can directive)=timy-admin
Super Admin User: URL=/timy/super_admin
, NAME=supepr_admin_dashboard
, GATEWAY(blade @can directive)=timy-super-admin
- Next, define the Super User in you .env file by providing its email in the variable
TIMY_SUPER_USER_EMAIL=
. This user will have plenty control of the app. - Next get your Pusher's credentials from Pusher and use them to define the following variables in your .env file. BE CERTAIN YOU SET YOUR
BROADCAST_DRIVER
VARIABLE TOpusher
: ` - Update your
package.json
file with the follow dependencies: ` - Uncomment the
Laravel Echo
section in yourresources/js/bootstrap.js
: ` - Then install the front end dependencies and compile:
npm install && npm run dev
. - OPTIONAL: This package includes an artisan command that runs every 5 minutes to check user's ip is still alive. It is inactive bt default: To activate it do the following
- MAKE SURE your server is running a
cron job
as suggested in Laravel documentation Scheduling, Starting The schedule session:* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
- In the
config\timy.php
file set the with_scheduled_commands variable to true:'with_scheduled_commands' => env('TIMY_WITH_SCHEDULED_COMMANDS', true)
.Features
- Authenticated users is required for the package to work. We leverage that on
laravel/ui
package. - Users and admin shoud have valid roles assigned to them.
- When session is started, all previously opened timers are closed and a new one is opened.
- Only Super Admin can manage roles.
- Admin controller is protected and only work for users with
timy-admin
role assigned to them. - On page load:
- If the user has a timer running for a specifig disposition, upon closing that one, a new timer is started using that same disposition.
- Even if there are not timers running, previous disposition is used to start a new timer on page reload.
- If both previous logic fails, by default the dispo set in the config is used to start a new timer.
- If a user change the Dispositions dropdown (Vue component) a new timer is created, closing all previous.
- When an user change their dispo, the admin dashboar update dinamically.
- When admin update a scpecific user's dispo, user interface update and the user is alerted.
Api Endpoints
- The GET endpoing
/timy/api/timers_filtered
or routeroute('timy.timers_filtered')
retunrs a Json formated resource with all timers, filtered by the query string. The following GET variables will allow you to filter the list: disposition=value
will only return timers where thedisposition
name contains the given value.user=value
will only return timers where theuser
name contains the given value.from_date=date
will only return timers where thestart_date
is newer or equal to the given date.to_date=date
will only return timers where thestart_date
is older or equal to the given date.payable=true
will only return timers wheredisposition
is labeled aspayable
.invoiceable=true
will only return timers wheredisposition
is labeled asinvoiceable
.running=true
will only return timers wherefinished_at
field is null, which represent currently running timers.- Visit the GET route
/timy/api/get_open_timer_hours
or routeroute('timy.getOpenTimersHours')
to get the current hours of the open timer for the current user. Ideal to display live updates, calculating the hours, whithout actually closing the current timer.
- Authenticated users is required for the package to work. We leverage that on
- MAKE SURE your server is running a
All versions of timy2 with dependencies
dainsys/components Version ^1.0
consoletvs/charts Version 6.*
guzzlehttp/guzzle Version ^6.3|^7.0.1
laravel/framework Version ^6.0|^7.0|^8.0
laravel/ui Version ^3.0
livewire/livewire Version ^v2.0
maatwebsite/excel Version ^3.1
pusher/pusher-php-server Version ~4.0