An open source starter solution for organizations to add a customer portal to their FileMaker database. Supports taking credit card payments online.
This portal was created by Blue Feather. It was designed both as a starting point for us to use with our clients and as a resource for anyone in the FileMaker community to use for building their own web portal.
This application is a basic starting point for building a client portal for your FileMaker database. It is designed to be an example of a simple implementation with easy access to make changes and customizations for your specific business use case. If you don’t know any PHP, JavaScript, HTML, or CSS you can still connect this to your DataAPI-accessible FileMaker solution just by adjusting a few configuration files and replacing the logo images!
A web portal built with traditional web technologies can be more performant than using FileMaker WebDirect and can provide users with a more familiar web experience. Frameworks like Laravel and Vue used in this solution also allow you to easily take advantage of third-party packages for creating features which you might not be able have in native FileMaker. Licensing for WebDirect can also be pricey and WebDirect can require a beefy server. A traditional stack web application like this can help control licensing and server costs.
The basic pre-built features of this portal allow you to share invoices and take payments online as examples, but it’s not necessary to use those features at all. Use this as a starting point to get connected and provide customers and clients with the access you want to give them. You can add or remove any of the features which come preconfigured.
This portal comes with some pre-built features for basic invoice payments online, but you don’t need to stick with that use case at all! The implementation and sample file should give you a good starting point for building your own features into the system. They don’t need to be related to invoices or payments at all!
If you’d like assistance configuring this portal or customizing it for your business, please contact Blue Feather and we’d be happy to help you with your project as part of our consulting services. We love making portals and working on FileMaker databases!
This app is a standard Laravel application. If you’re familiar with deploying a Laravel app you don’t need to read the instructions below and can proceed with the normal Laravel configuration process. If you’re new to things like using dependency managers and compiling JavaScript, read on!
From the Laravel documentation:
Laravel should always be served out of the root of the “web directory” configured for your web server. You should not attempt to serve a Laravel application out of a subdirectory of the “web directory”. Attempting to do so could expose sensitive files that exist within your application.
You want the public
folder to be the web root of your public site, not the application root. Be sure to configure your web server to point to this location!
Deploying this application requires Composer and Node be installed. These two services willl be used to automatically download and install all of the required dependencies for running this application, as well as compiling JavaScript
Once you have installed Composer and Node, and added both of them to your command path you can begin retrieving the dependencies for this application to run. Run the following command in a terminal within your project root to download PHP dependencies.
composer install
Do the same thing for JavaScript dependencies by running
npm install
Compile the JavaScript and CSS with
npm run production
This solution needs a simple SQL database in addition to your FileMaker database. If you don’t have a SQL server available, such as MySQL, you can use SQLite as an alternative. SQLite is a file-based database system and does not require setting up a database server.
This solution uses a SQL database for storing user logins and sessions. You can configure the connection to a SQL database to be used for this by setting the db_xxxx=
properties in the .env
file in the root of the application.
It’s best to use MySQL or another full hosted database if you have it available, but SQLite is fine for the limited use of managing user logins on a simple deployment, low-traffic site (less than ~100k hits per day). MySQL is a more performant, scalable, and reliable database solution than SQLite and significantly more robust, but for a simple portal deployment like this sample application which primarily will use FileMaker for data, SQLite will probably be fine if you don’t have a MySQL server available.
If you decide to use SQLite be aware that a database.sqlite file will be stored at /database/database.sqlite
in this application. This file is where the user logins are stored, and so you should back this file up regularly.
The .env file is the configuration for a particular deployment. Copy the .env.example
file to .env
and modify the values in there to suit your configuration. You’ll need to enter information for your database, FileMaker connection, and Braintree/Stripe account information.
You’ll also need to generate a new app key, which is used for encryption. Run the following command to generate a new app key
php artisan key:generate
A new SQL database won’t have the tables and fields needed to run this app. Database migrations are already set up to create the tables and fields required for this app. These migrations will apply to the database you’ve configured in the .env
file. You can run these migrations by running the following command:
php artisan migrate
The default field mapping is for use with the Invoices starter solution. You’ll need to modify the preconfigured field mappings to work with your own solution. Change the key values in the $fieldMapping
array as well as the $layout
in each of the following Model files in the /app/Models/
directory to point to your own fields and layouts.
Modify the $connection
, $layout
, and $fieldMapping
properties of the following Model files to match your FileMaker solution. Remember that each of the fields listed in these models files for mapping must be on the layouts you are specifying for them to be available through the Data API.
Customer
Invoice
LineItem
You’ll need to adjust the features of the sample portal to match what you want to have enabled. The configuration options are documented and controlled through the /config/portal.php
file.
Configuration options configuration:
I know it’s been a lot to read through, but that’s all the options and configuration for this starter solution! If you’ve set the right privileges for your FileMaker database login and have all the right fields on your layout you should now be able to create an account and log in to see data from your FileMaker database!
This customer portal starter solution uses the technologies in the list below. These packages were selected for their ease of use and powerful customization and features. Read more about them at the links below to find out about all of the features that each of these packages come with to and to learn how to add more features to this system.