使用 Laravel Filament 4 构建的项目管理工具,可轻松高效地跟踪任务。
Now using Filament 4!
A Laravel Filament 4 application for managing projects with ticket management and status tracking.
Clone the repository:
git clone https://github.com/SeptiawanAjiP/dewakoding-project-management
cd dewakoding-project-management
Install dependencies:
composer install
npm install
Set up environment:
cp .env.example .env
php artisan key:generate
Configure database in .env file:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dewakoding_project_management
DB_USERNAME=root
DB_PASSWORD=
Run migrations:
php artisan migrate
Create storage link for file uploads:
php artisan storage:link
Create a Filament admin user:
php artisan make:filament-user
Activate Role & Permission:
php artisan shield:setup
php artisan shield:install
php artisan shield:super-admin
Compile assets:
npm run dev
Start the development server:
php artisan serve
http://localhost:8000/adminImportant Notice: This project has been upgraded to Filament 4. If you're upgrading from a previous version that used Filament 3, please follow these steps carefully:
The upgrade process for Filament Shield requires special attention. Please read the official upgrade guide first: Filament Shield Upgrade Guide
After updating your dependencies and following the official guide, run the following command to regenerate Shield policies and permissions:
php artisan shield:generate --all --option=policies
Note: Some upgrade steps related to filament-shield have already been implemented in the codebase. The command above will ensure all policies and permissions are properly generated for Filament 4 compatibility.
php artisan optimize:clearThe Board View offers a familiar kanban-style interface for ticket management:
The Timeline feature provides a chronological perspective of your project work:
Epics help organize related tickets into larger initiatives:
The comment system enhances team collaboration:
This application supports Google OAuth login. Here's how to configure it:
Open Google Cloud Console
Create or Select a Project
Enable Google+ API
Create OAuth 2.0 Credentials
http://localhost:8000/auth/google/callback
https://yourdomain.com/auth/google/callback
Copy Client ID and Client Secret
Add Google OAuth configuration in .env file:
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
Replace your_google_client_id_here and your_google_client_secret_here with the values you obtained from Google Cloud Console.
/admin/loginNote: If the Google email is already registered in the system, the application will link the Google account with the existing account.
This application uses a queue system to send email notifications asynchronously. Here's how to configure and run it:
Configure email in .env file:
# For development (log emails to file)
MAIL_MAILER=log
# For production (SMTP)
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your-app-password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="DewaKoding Project Management"
Ensure queue configuration in .env:
QUEUE_CONNECTION=database
To process email notification queues, run the following commands:
php artisan queue:work
php artisan queue:work --daemon --tries=3 --timeout=60
Install supervisor:
sudo apt-get install supervisor
Create configuration file /etc/supervisor/conf.d/laravel-worker.conf:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/worker.log
stopwaitsecs=3600
Restart supervisor:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
The application sends email notifications for:
Note: Make sure the queue worker is always running to process email notifications. Without the queue worker, emails will not be sent.
This project is licensed under the MIT License.
暂无开放 Issues,或尚未同步最近议题。