PHPackages                             smmahfujurrahman/projectplangenerator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. smmahfujurrahman/projectplangenerator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

smmahfujurrahman/projectplangenerator
=====================================

A lightweight Laravel package for project planning with localStorage - no database required. Professional PDF import/export for seamless project syncing.

v1.0.0(6mo ago)011MITPHPPHP ^8.1|^8.2|^8.3

Since Nov 8Pushed 6mo agoCompare

[ Source](https://github.com/MahfujuRahman/projectplangenerator)[ Packagist](https://packagist.org/packages/smmahfujurrahman/projectplangenerator)[ Docs](https://github.com/MahfujuRahman/projectplangenerator)[ RSS](/packages/smmahfujurrahman-projectplangenerator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (6)Versions (2)Used By (0)

Project Plan Generator for Laravel
==================================

[](#project-plan-generator-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/2818fcd43ac6a09ae7d05c701fc39e3ff37f8e3fd58c12d5423d72af35d33f26/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736d6d616866756a75727261686d616e2f70726f6a656374706c616e67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/smmahfujurrahman/projectplangenerator)[![Total Downloads](https://camo.githubusercontent.com/2dbdcd86b2e25084378d8230fd04ab37add3402546223bebf6fc9eb9c92a5a39/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736d6d616866756a75727261686d616e2f70726f6a656374706c616e67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/smmahfujurrahman/projectplangenerator)

A lightweight Laravel package for project planning and tracking with **NO DATABASE REQUIRED**! All data is stored in the browser's localStorage, making it perfect for quick project management without database overhead. Features professional PDF import/export for seamless project syncing.

🎯 Key Features
--------------

[](#-key-features)

- � **No Database Required**: All data stored in browser localStorage
- �📊 **Project Management**: Create, track, and manage multiple projects
- 🎯 **Module &amp; Sub-Module System**: Hierarchical task organization
- 📈 **Progress Tracking**: Real-time completion percentage calculations
- 📅 **Timeline Management**: Track start dates, due dates, and completion times
- 💰 **Budget Tracking**: Monitor project and module budgets
- 📄 **PDF Import/Export**: Upload PDF to sync projects, download professional PDF reports
- 🎨 **Beautiful UI**: Professional dashboard with Tailwind CSS
- 📊 **Statistics &amp; Charts**: Visual progress tracking with Chart.js
- ⚙️ **Fully Configurable**: Control everything from Laravel config file
- � **Zero Dependencies**: No migrations, no database tables

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Laravel 10.x or ^11.x

Installation
------------

[](#installation)

### Step 1: Install via Composer

[](#step-1-install-via-composer)

```
composer require smmahfujurrahman/projectplangenerator
```

**Alternative (install from main branch):**

```
composer require smmahfujurrahman/projectplangenerator:dev-main
```

### Step 2: Publish Assets &amp; Configuration

[](#step-2-publish-assets--configuration)

Publish all package files (config and assets) in one command:

```
php artisan projectplanner:publish
```

Or use with `--force` to overwrite existing files:

```
php artisan projectplanner:publish --force
```

This single command will publish:

- Configuration file to `config/projectplanner.php`
- Assets (CSS, JS) to `public/vendor/projectplanner/`
- **Views are served directly from the package** (no publishing needed!)

#### Alternative: Publish Individually

[](#alternative-publish-individually)

If you prefer to publish specific parts:

```
# Publish only configuration
php artisan vendor:publish --tag=projectplanner-config

# Publish only assets (CSS, JS)
php artisan vendor:publish --tag=projectplanner-assets

# Publish everything
php artisan vendor:publish --provider="SMMahfujurRahman\ProjectPlanGenerator\ProjectPlanGeneratorServiceProvider"
```

That's it! No migrations needed!

Usage
-----

[](#usage)

### Available Commands

[](#available-commands)

```
# Publish all package files at once (recommended)
php artisan projectplanner:publish

# Publish with force (overwrite existing files)
php artisan projectplanner:publish --force

# Individual publishing (optional)
php artisan vendor:publish --tag=projectplanner-config
php artisan vendor:publish --tag=projectplanner-assets
```

**Note:** Views are automatically served from the package and don't need to be published.

### Accessing the Dashboard

[](#accessing-the-dashboard)

After installation, access the project planner at:

```
http://yourapp.test/project-planner

```

Or whatever route prefix you configure.

### Configuration

[](#configuration)

Edit `config/projectplanner.php` to customize the package:

```
return [
    // Enable/disable the entire package
    'enabled' => env('PROJECT_PLANNER_ENABLED', true),

    // Route configuration
    'route' => [
        'enabled' => env('PROJECT_PLANNER_ROUTE_ENABLED', true),
        'prefix' => env('PROJECT_PLANNER_PREFIX', 'project-planner'),
        'middleware' => ['web'], // Add 'auth' for authentication
    ],

    // Web path for assets
    'web_path' => env('PROJECT_PLANNER_WEB_PATH', '/project-planner'),

    // Import/Export settings
    'import_export' => [
        'pdf' => [
            'enabled' => true,
            'download' => true,
            'upload' => true,
        ],
    ],

    // Feature flags - control what users can do
    'features' => [
        'create_project' => true,
        'edit_project' => true,
        'delete_project' => true,
        'export_pdf' => true,
        'import_data' => true,
        'statistics' => true,
        'charts' => true,
    ],
];
```

### Environment Variables

[](#environment-variables)

Add these to your `.env` file for quick configuration:

```
PROJECT_PLANNER_ENABLED=true
PROJECT_PLANNER_ROUTE_ENABLED=true
PROJECT_PLANNER_PREFIX=project-planner
PROJECT_PLANNER_WEB_PATH=/project-planner
PROJECT_PLANNER_APP_NAME="My Project Planner"

# Feature Toggles
PROJECT_PLANNER_FEATURE_CREATE=true
PROJECT_PLANNER_FEATURE_EDIT=true
PROJECT_PLANNER_FEATURE_DELETE=true
PROJECT_PLANNER_FEATURE_EXPORT_PDF=true
PROJECT_PLANNER_FEATURE_IMPORT=true
```

### How It Works

[](#how-it-works)

1. **LocalStorage Only**: All project data is stored in the browser's localStorage
2. **No Database**: No migrations, no database tables, no queries
3. **Import/Export**:
    - Export your projects to PDF to backup or share
    - Professional PDF reports for documentation
    - Import PDF to sync projects across browsers or restore backups
4. **Data Persistence**: Data persists until localStorage is cleared
5. **Everything in Vendor**: All logic stays in the package, only config in your Laravel app

### Import/Export Workflow

[](#importexport-workflow)

#### Export PDF

[](#export-pdf)

```
// User clicks "Export PDF" button in the UI
// Downloads: ProjectName_Report.pdf (professional formatted report)
// Contains:
// - Cover Page with project overview
// - Executive Summary with timeline, budget, team
// - Complete module breakdown with progress bars
// - Statistics and completion metrics
```

#### Import PDF

[](#import-pdf)

```
// User clicks "Import PDF" button
// Uploads PDF file
// Parses and creates a new project with all modules and sub-modules
// Syncs with existing localStorage data
// Preserves all project details, timelines, and status
```

#### PDF Preview (Development Tool)

[](#pdf-preview-development-tool)

```
// Access: /project-planner/pdf-preview
// Live preview of PDF without downloading
// Useful for testing PDF generation and layout
// See changes in real-time as you modify projects
```

### Protecting Routes

[](#protecting-routes)

Add authentication middleware in config:

```
'route' => [
    'middleware' => ['web', 'auth'], // Require login
],
```

### Disabling Features

[](#disabling-features)

Control what users can do:

```
'features' => [
    'create_project' => false, // Disable project creation
    'delete_project' => false, // Disable project deletion
    'import_data' => false,    // Disable PDF import
],
```

### Changing the Route

[](#changing-the-route)

```
'route' => [
    'prefix' => 'my-projects', // Access at /my-projects
],
```

### Custom App Name

[](#custom-app-name)

```
'ui' => [
    'app_name' => 'My Company Project Tracker',
],
```

How Data Storage Works
----------------------

[](#how-data-storage-works)

### LocalStorage Structure

[](#localstorage-structure)

```
{
  "project_planner_data": [
    {
      "id": "id_1699999999_abc123",
      "name": "Website Redesign",
      "description": "Complete overhaul",
      "status": "active",
      "startDate": "2025-10-01",
      "targetEndDate": "2025-12-15",
      "budget": 50000,
      "team": 5,
      "modules": [...]
    }
  ]
}
```

### Data Persistence

[](#data-persistence)

- Data is saved automatically on every change
- Data persists across page refreshes
- Data is browser-specific (not synced across devices)
- Use PDF export/import to move data between browsers/devices
- Clearing browser data will delete all projects

Advantages
----------

[](#advantages)

✅ **No Database Overhead**: Perfect for small teams or demo purposes
✅ **Instant Setup**: No migrations to run
✅ **Fast Performance**: Direct browser storage, no server queries
✅ **Privacy**: Data never leaves the user's browser
✅ **Portable**: Export/import to move data anywhere
✅ **Zero Dependencies**: No database tables or relationships

Limitations
-----------

[](#limitations)

⚠️ **Single User**: Each browser has its own data
⚠️ **No Collaboration**: Multiple users can't share the same project
⚠️ **Storage Limit**: Browser localStorage typically limited to 5-10MB
⚠️ **Data Loss**: Clearing browser data will delete projects

**Solution**: Use PDF export regularly to backup your data!

Advanced Usage
--------------

[](#advanced-usage)

### Views are Automatically Loaded

[](#views-are-automatically-loaded)

Views are served directly from the package's `vendor` directory. You don't need to publish them. Laravel will automatically find them using the `projectplanner::` namespace.

**Want to customize views?** You can override any view by creating the same file structure in your Laravel app:

```
# To override index.blade.php:
resources/views/vendor/projectplanner/index.blade.php

# To override pdf-preview.blade.php:
resources/views/vendor/projectplanner/pdf-preview.blade.php

```

Laravel will use your custom view instead of the package's view.

### Customizing Assets

[](#customizing-assets)

After publishing assets, customize CSS/JS in:

```
public/vendor/projectplanner/css/styles.css
public/vendor/projectplanner/js/app.js

```

### Disabling the Package

[](#disabling-the-package)

```
PROJECT_PLANNER_ENABLED=false
```

Or temporarily disable routes:

```
PROJECT_PLANNER_ROUTE_ENABLED=false
```

Roadmap
-------

[](#roadmap)

- Enhanced PDF parsing for complex imports
- Team collaboration via database (optional mode)
- Cloud sync option
- Template projects
- Gantt chart view
- Multi-language support

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Contributions are welcome! Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security issues, please email .

Credits
-------

[](#credits)

- [SM Mahfujur Rahman](https://github.com/MahfujuRahman)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

Support
-------

[](#support)

- GitHub Issues: [Create an issue](https://github.com/MahfujuRahman/projectplangenerator/issues)
- Documentation: [Full Documentation](https://github.com/MahfujuRahman/projectplangenerator/wiki)

---

Made with ❤️ by SM Mahfujur Rahman

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance68

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

185d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/58d29d09964f64b83e4713f23fb9c8f52aee2055cfcc8e6b0aa77b2220a7adca?d=identicon)[MahfujuRahman](/maintainers/MahfujuRahman)

---

Top Contributors

[![MahfujuRahman](https://avatars.githubusercontent.com/u/100138890?v=4)](https://github.com/MahfujuRahman "MahfujuRahman (4 commits)")

---

Tags

laravelTCPDFproject managementtask managementpdf exportno databaselocalstorageproject-plannerproject-trackingpdf-import

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/smmahfujurrahman-projectplangenerator/health.svg)

```
[![Health](https://phpackages.com/badges/smmahfujurrahman-projectplangenerator/health.svg)](https://phpackages.com/packages/smmahfujurrahman-projectplangenerator)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[watson/active

Laravel helper for recognising the current route, controller and action

3253.6M14](/packages/watson-active)[dragon-code/pretty-routes

Pretty Routes for Laravel

10058.7k4](/packages/dragon-code-pretty-routes)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[bjuppa/laravel-blog

Add blog functionality to your Laravel project

483.3k2](/packages/bjuppa-laravel-blog)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40129.3k2](/packages/erlandmuchasaj-laravel-gzip)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
