LaSalle Software: Overview

What is my LaSalle Software?

LaSalle Software is my free and open source web application to help Laravel developers build custom websites, web applications, and perhaps/probably serverless functions -- I'll be looking at this shortly -- by integrating Laravel's Framework, Nova, and Dusk with commonly needed features.

Why did I create LaSalle Software?

Laravel is the framework, not the app. When starting a new project, I was doing the same thing over and over to get to a base point where I could start the real custom development. So, why not just have something ready-to-go that I could download anytime, install easily, and works immediately?

Honestly, I thought there would be a widely accepted project out there with the Laravel Framework as its base, and then bolted together into one project all the usual stuff Laravel developers need to get projects going. I could not find a suitable project. There were/are projects for the admin only, each one an interesting journey of discovery unto themselves. There are commercial solutions for narrow use cases. There are full blown projects built with the Laravel Framework that are their own self-enclosed systems - no thanks. Well, time to use my power of creation and create a solution for myself.

What features did I want?

Native Laravel

  • Absolutely no way I am building a self-contained system.
  • My Software is all Laravel, all the time.
  • Laravel has a templating system: using this!
  • Laravel hasa customizable authentication system: modifying this!
  • Laravel uses composer to install add-ons: using this!
  • Laravel has a way to handle authorization: using this!
  • Sticking with Laravel conventions and ways of doing things.
  • LaSalle Software is not only coupled to the Laravel Framework, with no apologies, no hesitation, and no reservations.

Composer installable PHP packages

  • The widest possible universe of PHP first-party and third-party add-ons exists with composer installable packages.
  • Laravel uses composer.
  • Of course my LaSalle Software uses composer!

Administration area

  • Laravel is built with features to help you build an admin.
  • Laravel does not come with a built-in site where you can login and manage your databases.
  • My Software needs this built-in site.
  • I ended up building an independent "back-end" administration app

Laravel Nova for the back-end

  • Laravel's Nova is a first party commercial administration package for the Laravel Framework.
  • Yes, it is a commercial package. If you use LaSalle Software, you'll have to buy it!
  • No, I do not have an arrangement/get commissions.
  • My main premise for using it is: it should work best with the Laravel Framework.
  • Still, took a lot of work to figure a lot of things out!

Blog

  • I need a blog for myself
  • 'nuff said!

Separate users who can login from non-loggable people

  • Not everyone in the database should be able to login.
  • There are people in my database who should never login.
  • The people who are able to login should be granted credentials in a segregated area of the database.

Multiple authorization levels

  • Laravel has the plumbing for authorization, ready for custom development.
  • Nova does not have default authorization presets.
  • Had to custom program the Nova authorization using the native Laravel authorization plumbing myself.

Multiple independent front-end domains with a common independent administrative back-end domain

  • This is something not built into Laravel, but it is possible to build this into native Laravel.
  • This is something that is very important to have.
  • The blog is the first one to use this feature: the front-end "consumes" posts entered in the admin back-end.

Back-end authenticates front-ends with JWT, based on the OAuth client credential grant

  • The back-end is an independent domain. How does it know that it is ok to give blog posts to the front-end?
  • Both the front-end domain and the back-end domain use json web tokens (JWT), using the OAuth client credential grant.
  • Basically, after much researching, this is the way to go.

Dusk tests for Nova

  • Laravel's Dusk is a browser test package by the Laravel project, made specifically for the Laravel Framework.
  • Dusk runs through your browser automatically (well, you have to set up the steps first).
  • So I have Dusk run browser steps for my authorization levels, and for login authentication.

Easy installation

  • I want something that is very easy to install, both locally and in production.
  • I ended up creating interactive command line scripts for installation.

Package development

  • Building one huge application is a mistake.
  • I want to keep my actual apps as lean as possible.
  • I have put all my coding in multiple composer installable packages.
  • I have included multiple composer.json files in my two apps to help you set up in multiple environments.

Profiles database

  • I want one unified database as a I build out future features
  • So many times I see stovepipe database tables. I want to avoid this!
  • I want a "starter" database with the basics set up already

TailWindCSS

  • TailWind CSS is a new, excellent, css utility framework.
  • I like TailWindCSS so much that I want the scaffolding built-in to my LaSalle Software.

Database backup

  • I'm just scratching an itch to have a very simple package that backs up the back-end database to AWS's S3 automatically.

UUID

  • I want a unique universal identifier number assigned to each request to the back-end.

A few firewall features

  • I want a few "pet" firewall features.