Skip to content

MrNoScript/activity-approvals

Repository files navigation

Activity Approvals

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.

What the app does

  • 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)
  • Supports local authentication plus optional Google/Microsoft SSO via Socialite.

Tech stack

  • 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)

Developer setup

1. Prerequisites

  • PHP 8.3+
  • Composer
  • Node.js 20+ and npm
  • SQLite (default local database)

2. Install dependencies and bootstrap

composer setup

composer setup runs:

  • composer install
  • creates .env from .env.example (if missing)
  • php artisan key:generate
  • php artisan migrate --force
  • npm install --ignore-scripts
  • npm run build

3. Seed initial settings and admin user

php artisan db:seed

This seeds default runtime settings and creates:

  • Email: test@example.com
  • Password: password
  • Role: admin

4. Start the local development stack

composer dev

This 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).

Environment and configuration notes

  • Default DB is SQLite (database/database.sqlite).
  • Runtime settings are stored in the settings table 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.*).
  • Mail defaults to log driver in .env.example; adjust mail settings for real delivery.

Common developer commands

# 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

Project workflow summary

  1. A submitter creates an activity submission.
  2. Reviewers (delegate/admin) review in the admin review queue.
  3. Reviewer records a decision (approve/decline/request changes) or comment.
  4. Submission event history and notifications are generated for traceability.

License

This project is open-sourced under the MIT license.

About

Scouts Activity Approvals Tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages