Activity Approvals is a Laravel + Inertia (React) application for submitting, reviewing, and administering activity approval requests. It supports role-based workflows, reviewer decisions, organization structure management, runtime settings, and optional social sign-in.
- Allows members to submit activity approval requests with POR-style core fields, optional custom fields, and supporting file attachments.
- Provides a reviewer workspace to approve, decline, request changes, and comment on submissions.
- Tracks a full event timeline per submission (submit/edit/review/comment actions).
- Sends decision/comment notifications to users via database notifications and email.
- Includes admin tooling for:
- user and role management (
submitter,approver,delegate,admin) - organization structure tree management
- runtime settings (branding, workflow flags, mail settings, OAuth settings, custom field JSON)
- user and role management (
- Supports local authentication plus optional Google/Microsoft SSO via Socialite.
- Backend: PHP 8.3+, Laravel 13, SQLite (default), Eloquent, Notifications
- Frontend: Inertia.js, React 19, Vite 8, Tailwind CSS 4
- Auth/SSO: Laravel auth + Socialite (Google, Microsoft)
- PHP 8.3+
- Composer
- Node.js 20+ and npm
- SQLite (default local database)
composer setupcomposer setup runs:
composer install- creates
.envfrom.env.example(if missing) php artisan key:generatephp artisan migrate --forcenpm install --ignore-scriptsnpm run build
php artisan db:seedThis seeds default runtime settings and creates:
- Email:
test@example.com - Password:
password - Role:
admin
composer devThis starts, in one command:
- Laravel app server
- queue listener
- Laravel log tailing (
pail) - Vite dev server
Open the app at http://127.0.0.1:8000 (or the URL shown by php artisan serve).
- Default DB is SQLite (
database/database.sqlite). - Runtime settings are stored in the
settingstable and can be managed in Admin > Settings. - OAuth can be configured in either:
- environment variables (
MICROSOFT_*,GOOGLE_*), or - admin runtime settings (
oauth.microsoft.*,oauth.google.*).
- environment variables (
- Mail defaults to log driver in
.env.example; adjust mail settings for real delivery.
# Run tests
composer test
# Run code style fixer
./vendor/bin/pint
# Build frontend assets for production
npm run build
# Run frontend dev server only
npm run dev- A submitter creates an activity submission.
- Reviewers (
delegate/admin) review in the admin review queue. - Reviewer records a decision (approve/decline/request changes) or comment.
- Submission event history and notifications are generated for traceability.
This project is open-sourced under the MIT license.