PHPackages                             rayzenai/project-management-app - 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. rayzenai/project-management-app

ActiveProject

rayzenai/project-management-app
===============================

Laravel + Inertia + Svelte host app for the rayzenai/project-management workspace package.

v1.0.0(today)00[1 PRs](https://github.com/rayzenai/project-management-app/pulls)MITPHPPHP ^8.5CI passing

Since Jul 27Pushed todayCompare

[ Source](https://github.com/rayzenai/project-management-app)[ Packagist](https://packagist.org/packages/rayzenai/project-management-app)[ RSS](/packages/rayzenai-project-management-app/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (17)Versions (2)Used By (0)

PMOPM
=====

[](#pmopm)

Project &amp; task tracking workspace for PMOPM (Office of the Prime Minister and Council of Ministers) — projects → tasks → subtasks, assignments, notes, contacts, teams, members, activity log, and notifications, with a JSON API for a companion mobile client.

The workspace itself (models, services, controllers, authorization, the whole `/workspace/*` + `/api/v1/*` surface) is shipped by the [`rayzenai/project-management`](https://packagist.org/packages/rayzenai/project-management)Composer package. This repo is the **host app**: it wires the package into a Laravel + Inertia + Svelte project and adds the app-specific bits (appearance API, user preferences, theming).

Tech stack
----------

[](#tech-stack)

- **Backend:** Laravel 13, PHP 8.5, Sanctum (API token auth for the mobile client)
- **Frontend:** Inertia.js + Svelte 5, Tailwind CSS v4, Vite
- **Workspace engine:** `rayzenai/project-management` (Composer package)
- **Testing:** Pest
- **Formatting/linting:** Laravel Pint (PHP), ESLint + Prettier + `svelte-check` (JS/TS/Svelte)

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

[](#requirements)

- PHP **8.5**
- Composer 2
- Node **22** + npm
- **PostgreSQL** — the workspace package ships a `pg_trgm` migration for fuzzy task search, so Postgres is the supported database (the migration no-ops on other drivers, and you lose command-palette search)
- **Redis** — cache, sessions, and the queue
- Docker (optional) — only to run the deployment image locally via `./dock.sh`

Quick start
-----------

[](#quick-start)

```
git clone git@github.com:nepal-government/pmopm.git
cd pmopm
composer setup
```

`composer setup` runs the full bootstrap in one shot: `composer install`, copies `.env.example` to `.env`, generates the app key, runs migrations, and installs + builds the frontend.

Manual setup
------------

[](#manual-setup)

If you'd rather run the steps yourself (or something in `composer setup` fails):

```
composer install
cp .env.example .env
php artisan key:generate

# Create the database, then set DB_* / REDIS_* in .env to match your setup:
createdb pmopm

php artisan migrate

npm install
npm run build     # production build
# or: npm run dev # Vite dev server with HMR
```

Then serve the app with `php artisan serve`, or use `composer dev`, which runs `php artisan dev` (server + queue listener + Vite, concurrently).

Configuration
-------------

[](#configuration)

Beyond the standard Laravel `.env` values, the workspace package reads:

VariablePurpose`PM_SUPER_ADMINS`Comma-separated emails granted the `manage-workspace` gate (full super-admin access)`PM_SUPER_ADMIN_PASSWORD`Default password used by the super-admin seeder`PM_TRASH_TTL_DAYS`Days a soft-deleted workspace record survives before it's pruned (default `30`)`PM_REMINDERS_RUN_AT`Time of day the deadline-reminder command runs (default `08:00`)Package config can be published (optional) with:

```
php artisan vendor:publish --tag=project-management-config
```

Using the app
-------------

[](#using-the-app)

- `/` redirects to `/workspace`.
- **Web (Inertia)** — `/workspace/*`, session auth, branded login at `/workspace/login`.
- **JSON API** — `/api/v1/*`, Sanctum bearer auth, built for the companion mobile client.

The project-management package
------------------------------

[](#the-project-management-package)

Everything workspace-shaped (routes, models, services, authorization rules) lives in the package, not this repo. Before making changes that touch projects/tasks/teams/etc., read:

- `vendor/rayzenai/project-management/README.md` — full HTTP API reference (web + JSON)
- `vendor/rayzenai/project-management/CLAUDE.md` — architecture and conventions

Testing &amp; quality
---------------------

[](#testing--quality)

```
composer test         # config:clear + php artisan test (Pest)
composer lint          # Pint (fixes)
composer lint:check    # Pint (check only)
npm run lint           # ESLint (fixes)
npm run lint:check     # ESLint (check only)
npm run format         # Prettier (fixes)
npm run format:check   # Prettier (check only)
npm run types:check    # svelte-check
composer ci:check       # everything CI runs: lint/format/types checks + tests
```

CI
--

[](#ci)

GitHub Actions run on every push/PR:

- `.github/workflows/lint.yml` — Pint + frontend lint/format
- `.github/workflows/tests.yml` — Pest, type checks, and asset build across the PHP matrix

Docker &amp; deployment
-----------------------

[](#docker--deployment)

`Dockerfile` is the real deployment artifact, built by Dokploy straight from a git clone. Three stages: Composer vendor → asset build (PHP + Node 22, because the wayfinder Vite plugin shells out to `php artisan wayfinder:generate` during `vite build`) → `serversideup/php:8.5-fpm-nginx` serving on port **8080**. `AUTORUN_ENABLED=true` makes the container run `migrate --force`, `storage:link`, and `optimize` at boot.

Run that exact image locally against your own Postgres and Redis:

```
./dock.sh build          # build the image and start it on http://localhost:8101
./dock.sh logs           # follow container logs
./dock.sh artisan migrate:status
./dock.sh shell
./dock.sh down
```

`dock.sh` derives a container env from your `.env`, rewriting loopback hosts to `host.docker.internal`. The image bakes the source in at build time, so code changes need a rebuild — for day-to-day dev use `composer dev`.

Deployed as three Dokploy applications off this one image:

ApplicationCommandNotes`pmopm-api`(image default)The only app with a domain; runs migrations via AUTORUN`pmopm-scheduler``php artisan schedule:work``workspace:prune-trashed` daily + `workspace:send-deadline-reminders` at `PM_REMINDERS_RUN_AT``pmopm-queue``php artisan queue:work redis --sleep=3 --tries=3 --max-time=3600`Both workers need `AUTORUN_ENABLED=false` (so they don't race the web app's migrations) and a disabled Swarm healthcheck (they don't run nginx). See `~/rayzen/DOKPLOY.md` §4 for the full playbook.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

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

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/351e3224dcfda5f2fc1a86fb6424f60a9a060a39c938c6338a244d01912e077d?d=identicon)[kiran1991](/maintainers/kiran1991)

---

Top Contributors

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

---

Tags

laravelinertiaproject managementsveltetask-tracking

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/rayzenai-project-management-app/health.svg)

```
[![Health](https://phpackages.com/badges/rayzenai-project-management-app/health.svg)](https://phpackages.com/packages/rayzenai-project-management-app)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[leantime/leantime

Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.

10.2k4.0k](/packages/leantime-leantime)[nunomaduro/laravel-starter-kit-inertia-react

The skeleton application for the Laravel framework.

2071.1k](/packages/nunomaduro-laravel-starter-kit-inertia-react)

PHPackages © 2026

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