Web-Inventory

Web-Inventory

Private web inventory and monitoring system for DIC-UP Baños, with website registry, status checks, role-based admin tools, and audit-ready operations.

0stars
0forks
0watchers
0issues
1.2 MB

Web Inventory System

University of the Philippines Logo

Internal Website Inventory and Monitoring Platform
Digital Innovation Center (DIC), University of the Philippines Baños

License PHP 8.2+ Laravel 12 Filament 3 Tests: Pest Static Analysis: PHPStan Code Style: Pint


Table of Contents

  1. Private System Notice
  2. Author and Institutional Context
  3. System Overview
  4. Technology Stack
  5. Repository Structure
  6. Prerequisites
  7. Local Setup
  8. Application Access
  9. Operations and Monitoring
  10. Quality Gates
  11. Pre-commit Workflow
  12. Internal Documentation
  13. Policy Documents
  14. Disclaimer

Private System Notice

This repository is proprietary and private.

ScopePolicy
Source codeNot open for public contribution or redistribution
AccessLimited to authorized DIC team members
RightsAll rights reserved by the author/owner

See LICENSE, CONTRIBUTING.md, SECURITY.md, and CODE_OF_CONDUCT.md for internal policies.

Author and Institutional Context

Privately developed by Mhar Andrei Macapallag for his intern organization, the Digital Innovation Center (DIC), University of the Philippines Baños.

IdentityValue
GitHub@VoxDroid
AliasVoxDroid

System Overview

Web Inventory centralizes website records for UPLB units and provides operational tooling for monitoring and governance.

  • Website registry with office ownership and content manager assignment
  • Automated status checks and status logs
  • Manual website logs with reusable tags
  • Office/content manager/user management
  • Role and permission controls (super_admin, user)
  • Dashboard and exports (CSV, Excel, JSON, PDF)

Technology Stack

LayerTools
BackendPHP ^8.2, Laravel ^12.0
Admin UIFilament ^3.0, Livewire, Alpine.js
Frontend buildVite ^7.0.7, Tailwind CSS ^4.0.0
DatabaseMySQL (default in .env.example)
AuthorizationSpatie Permission ^6.24, Filament Shield ^3.9
ObservabilitySpatie Activity Log ^4.12
MonitoringGuzzle ^7.10 (status checks)

Current lockfile snapshot: Laravel v12.53.0, Filament v3.3.49, Filament Shield 3.9.10, Vite 7.3.1, Tailwind CSS 4.2.1, Pest v4.4.1.

Repository Structure

app/                    Application code (models, services, jobs, Filament resources/pages)
config/                 Application and feature configuration
database/               Migrations, factories, seeders
docs/                   Internal docs and checklists
public/                 Public assets and entrypoint
resources/              Frontend sources and Blade views
routes/                 Web and console routes/scheduling
scripts/                Utility setup/seed scripts
tests/                  Pest feature and unit tests

Prerequisites

  • PHP 8.2+ with common Laravel extensions (pdo, pdo_mysql, mbstring, openssl, bcmath, ctype, json, tokenizer, xml)
  • Composer 2+
  • Node.js 20+ and npm
  • MySQL 8+
  • Git

Local Setup

  1. Clone the repository and enter the project directory.
git clone <private-repo-url> Web-Inventory
cd Web-Inventory
  1. Install dependencies.
composer install
npm install
  1. Configure environment.
cp .env.example .env
php artisan key:generate
  1. Verify database settings in .env.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=web_inventory
DB_USERNAME=root
DB_PASSWORD=
  1. Create the database.

Option A: use helper script in scripts/.

php scripts/database_setup.php

Option B: create the database manually in MySQL, then continue.

  1. Run migrations and seeders.
php artisan migrate:fresh --seed

migrate:fresh drops all tables before re-running migrations. Use it for local/dev reset workflows.

  1. Build frontend assets.
npm run build
  1. Start development services.
composer run dev

This starts Laravel server, queue listener, log tailing (pail), and Vite dev server concurrently.

Application Access

SurfaceURL
Public landing pagehttp://localhost:8000/
Admin panelhttp://localhost:8000/admin

Default accounts seeded by DefaultSuperAdminSeeder:

  • admin@dic.uplb.edu.ph / password
  • user@dic.uplb.edu.ph / password

Change default credentials immediately in non-local environments.

Operations and Monitoring

Script Utilities

ScriptPurposeCommand
scripts/database_setup.phpCreates DB from .env values without full Laravel bootstrapphp scripts/database_setup.php
scripts/setup-defaults.phpFresh local reset and essential defaultsphp scripts/setup-defaults.php
scripts/seed-test-data.phpSeeds demo/testing entitiesphp scripts/seed-test-data.php

scripts/setup-defaults.php runs these actions:

  • php artisan key:generate --quiet
  • php artisan migrate:fresh --force
  • php artisan db:seed --class=RolesAndPermissionsSeeder --force
  • php artisan db:seed --class=DefaultSuperAdminSeeder --force

Website Status Checks

Manual run:

php artisan websites:check-status

Scheduler is registered in routes/console.php and runs every five minutes using:

  • everyFiveMinutes()
  • withoutOverlapping()
  • runInBackground()

Configuration in config/web-inventory.php and environment values:

WEBSITE_CHECK_INTERVAL=5
WEBSITE_CHECK_TIMEOUT=10
WEBSITE_ALERT_EMAIL=alerts@example.com
WEBSITE_CHECK_CONCURRENCY=5

Queue and Scheduler (Production)

  • Queue worker example: php artisan queue:work --tries=1 --timeout=0
  • Scheduler cron: * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

Quality Gates

Run test suite:

composer test

Run Pest directly:

php artisan test

Run static analysis:

vendor/bin/phpstan analyse

Run formatter:

vendor/bin/pint

Pre-commit Workflow

Install and run pre-commit checks using a local Python virtual environment:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit run --all-files

Optional one-time hook installation:

pre-commit install

Internal Documentation

  • docs/project_overview.md
  • docs/checklist.md
  • docs/test_checklist.md

Policy Documents

  • Contribution policy: CONTRIBUTING.md
  • Security policy: SECURITY.md
  • Team conduct policy: CODE_OF_CONDUCT.md
  • Licensing terms: LICENSE
  • Support channels: SUPPORT.md

Disclaimer

This project is intended for private institutional operations. External use, redistribution, sublicensing, or publication is not permitted without explicit written permission from the owner.

Web-Inventory

$ cat ./about.json

categoryWeb App
languagePHP
licenseOther
createdMar 9, 2026
last_push2d ago

$ tokei ./

PHP
81.8%
Blade
15.6%
CSS
2.4%
JavaScript
0.1%

$ echo $TOPICS

activity-logadmin-panelalpinejsfilamentinternal-toolinventory-managementlaravellivewiremysqlpestphpphpstanpre-commitqueue-workersrole-based-access-controlschedulerspatie-permissiontailwindcssvitewebsite-monitoring

contributors