About this Site

To acquire a login, please contact Peter Gorgone.

This is a demo site based on a custom intranet/CMS I built for a major Los Angeles law firm.

Primary features include:
  • A Content Management System (CMS) that allows company employees to add, edit, and remove pages for the site, as well as to control the page's content using a WYSIWYG editor (TinyMCE). Pages added to the CMS will show up in the main sidebar navigation shown on every page. (requires login).
  • An employee Directory, listing users both in table and photo grid displays. Both views have a checkbox-based form which allows filtering by department, practice area, office location, and so forth. In addition the table has a built-in 'quick text search' that narrows the table based on string matching. Clicking on the 'location' column in the directory table will show the user's office location highlighted on a floor map.
  • A user-configurable Dashboard. The dashboard's banner image can be updated by a site manager via the admin panel. Each individual user can select from a list of RSS feeds to display, as well as select a CMS-generated page as a 'favorite', which will show up in the dashboard as a linkable icon. (requires login).
  • A Global Search form located in the top header bar, which will return w categories of results: CMS-generated pages and Employees.
  • A company events page and associated backend management area. In the latter, authorized employees can add bulletins describing upcoming events either by uploading a banner image, or by creating a text-based posting.
  • Role-Based Access Control (RBAC): In the admin panel, authorized users can add and remove permissions on a per-user basis to determine which employees are authorized to perform certain duties such as managing the CMS, updating company events, etc.
Technologies Used:
  • Laravel
  • Javascript with JQuery/AJAX
  • Bootstrap 4
  • JQuery Data Tables
  • Custom Laravel Libraries. Finding myself using the Data Tables library quite often, not only in the admin panel but increasingly throughout the sites I build, I encapsulated 2 common pieces of related functionality into Laravel packages:
    • Collector: this package provides a concise way to 'collect' records from an Eloquent model, providing an interface for models to implement which determines how filtering and searching is done.
    • Table Container: provides a constructor and associated methods to quickly configure a Data Table in the controller, allowing it to be instantiated in the views with a single line of markup.