Palm Tree is a web based CRM application with Google Business Review email request capabilities.
- Keep track of your Customers in a digital format - ditch the pen and paper!
- Send marketing emails out, including emails requesting Google Business Reviews.
- Directly open a Review window on your Google Business page with a click of a button within the email.
- Perfect for small businesses, entrepreneurs, and anyone looking to keep track of their customers and send out marketing emails.
- Visit a demo of the application here.
Note
The demo page only includes some basic functionality of the application.
To access the full functionality, clone or fork the project and run on your local machine following the instructions in this README
.
- Features
- Background Story
- Definitions
- Getting Started
- What's Inside?
- Fully Interactive Customer Table
- Custom Email Template
- Configure Your Business
- Send Emails to Your Customers
- Disclaimer
- Closing
- What's Next?
- Project
- Contributing
- Resources
- License
- Credits
- Fully Interactive Customer Table
- Custom Email Template
- Configure Your Business
- Send Emails to Your Customers
I created Palm Tree to help small businesses and entrepreneurs keep track of their customers and send out marketing emails. I was inspired to create this application after working with a small business owner who was using a pen and paper to keep track of their customers. With years of experience working with large enterprise CRM applications, I knew there was a better way. I created Palm Tree to be a simple, easy to use, and fully interactive CRM application that anyone can use. I hope you enjoy using Palm Tree as much as I enjoyed creating it!
- CRM: An acronym for Customer Relationship Management. A CRM is a software that helps businesses manage, track, and improve all the relationships with their customers. CRMs centralize all customer data, making it easier for businesses to manage relationships with customers, vendors, and partners.
- Google Business Review: A review of your business on Google. Google Business Reviews are important because they can give businesses a huge credibility boost without having to spend a dime. The more reviews you have, the more people will trust you and want to do business with you.
-
Download Palm Tree directly using one of the methods below:
- Download with Git:
git clone https://github.com/scottgriv/palm-tree
- Download with Homebrew:
brew tap scottgriv/palm-tree https://github.com/scottgriv/Palm-Tree
- Download the Zip File Here.
-
Host the application using your web server and databases. See the XAMPP instructions below on how to do this.
- Download Docker Here.
- Make sure Docker is up and running.
- Make sure you follow the System Requirements under your preferred Operating System.
- Launch your CLI (Command Prompt on Windows/Terminal on Mac).
- Change the directory using your CLI to your Palm Tree directory:
cd Desktop/Palm-Tree
- Once you're in the Palm Tree directory, run the
Docker Compose
command:docker-compose up
Note
This step may take a while to download all of the necessary images.
- This will build the Docker Containers and you should find your application running under port 80.
- Navigate to:
http://localhost
- Navigate to:
- Download XAMPP Here.
- Start the
MySQL Database
andApache Web Server
services. Optionally, you can install these as a service if you're using windows so the web server automatically starts and serves Palm Tree if the PC ever restarts or shuts down and comes back up:First step to install Apache service, run XAMPP Control Panel as Administrator, then click the Apache service button located on the left side of Apache components, click next and βClick Yes to Install the Apache Serviceβ window will open, then click Yes to continue.
- Go to the
phpMyAdmin
portal and import the SQL database scriptpalm_tree.sql
located in thesql
folder.
Important
The below two steps/changes are to correct the application from the default Docker install above.
- Update the
sql/config.ini
file changingdb_host = db
todb_host = localhost
. - Update the
container
class menu links in thecontainer.php
file From/To:- From:
/customers.php
To:/Palm-Tree/customers.php
- From:
/configure.php
To:/Palm-Tree/configure.php
- From:
/email.php
To:/Palm-Tree/email.php
- From:
- Alternatively, you can update the
httpd.conf
file to set your default index page for your localhost to thePalm-Tree
directory.
- Go to your web browser and navigate to the URL:
http://localhost/Palm-Tree
and you should be redirected to the main application page. - If you're accessing Palm Tree from a mobile device on your local network, you'll have to to access the application using your host machines IP address. To find your IP address, open up your CLI and type:
Mac:
ifconfig
- You should see your IP address under the
inet
field, typically listed underen0
oren1
for Wi-Fi connections.
Windows:
ipconfig
- You should see your IP address under the
IPv4 Address
field under the appropriate network adapter. - Update the
sql/config.ini
file changingdb_host_ip = localhost
todb_host = <your_ip_address>
. - Navigate to the URL:
http://<your_ip_address>/Palm-Tree
and you should be redirected to the main application page.
Below is a list of the main files and folders in this repository and their specific purposes:
Palm-Tree
ββ app # Future home of the application
ββ css # CSS files used for the application
β ββ main.css # Default CSS file used for the application
ββ docs # Images used for the GitHub README relative path
β ββ images # Images used for the GitHub README relative path
ββ img # Images used for the application
β ββ config # Images used for the Configure screen
β ββ fav # Favorite/Bookmark icons, including icons for Android and iOS shortcuts
β ββ link # Images used for the link icons on the Email screen (i.e google, facebook, etc.)
β ββ logo # This is where your uploaded company logo will go from the Configure screen (replacing `logo.png`) for the Customer screen.
ββ js # JavaScript files used for the application
β ββ jquery.tabledit.js # Included dependency file [jQuery-Tabledit v1.2.3](https://github.com/markcell/jquery-tabledit)
β ββ main.js # Default JavaScript and jQuery file used for the application
ββ lib # Misc. library files used for the application
β ββ PHPMailer-master # Mailer dependency used to send emails out to customers [PHPMailer v6.7.1](https://github.com/PHPMailer/PHPMailer)
β ββ phpinfo.php # File containing the `phpinfo()` function: Because every system is setup differently, `phpinfo()` is commonly used to check configuration settings, such as log file locations, and for available predefined variables on a given system.
ββ sql # SQL files used for the application
β ββ config.ini # Configuration file used to connect to the database
β ββ palm_tree.sql # Starting database script/structure required to run the application
ββ templates # HTML files used as the default email template for the Email screen
β ββ sample_email_template.html # HTML file used as the default email template for the Email screen
β ββ sample_email_template_no_logo.html # Same as above but without the logo
ββ commands.php # PHP file used to process requests and responses from the front-end application to the back-end database
ββ configure.php # PHP file behind the Configure screen
ββ container.php # PHP file used to create the HTML menu container (this sets the screen padding, size, etc. for each screen, making all the screens a consistent size)
ββ customers.php # PHP file behind the Customers screen
ββ database.php # PHP file used to connect to the database configuration using the `config.ini` file
ββ docker-compose.yml # Compose file used for defining services, networks, and volumes for a Docker application
ββ email.php # PHP file behind the Email screen
ββ encryption.php # Encryption file used to encrypt/decrypt data in the database
ββ footer.php # The websites footer
ββ header.php # The website's header which also contains the path for favorite icons and remote JavaScript/CSS libraries
ββ index.html # Demo page built to demo the application on GitHub Pages.
ββ index.php # Default landing page of the website which contains a redirect to `customers.php` (the Customers screen)
ββ send_email.php # PHP file used to send emails out to customers
ββ Dockerfile # Dockerfile for the application
ββ .gitignore # Git ignore file
ββ .gitattributes # Git attributes file
ββ .github # GitHub folder
ββ PRG.md # PRG Connection File
ββ LICENSE # License file
ββ README # This file
- CRUD-Enabled:
- Create Customer Information
- Read Customer Information
- Update Customer Information
- Delete Customer Information
- Export table to a .csv file.
- Scroll up, down, and refresh the table easily using the provided buttons.
- Highlighted editable fields.
- Log Customer Notes.
- Sort Customers by:
- First Name
- Last Name
- Phone
- Created Date
- Search for Customers based on:
- First Name
- Last Name
- Phone
- Check the Send Email box to send an email to the Customer.
- Mobile capabilities with Bootstrap:
-
Palm Tree utilizes Mustache styled syntax to create custom email templates.
-
Configure your Email Server to send Business emails using your own plain-text or HTML email template (Gmail Supported).
-
Use variables from a predefined list to send curated emails to your Customers in the Subject and Body:
Hello {{ customer_first_name }} {{ customer_last_name }}!
will translate to:
Hello John Smith!
-
CC & BCC capabilities.
-
Send a mass email to ALL of your customers at once.
-
Create an account on Imgur to host photos used in your email template.
- Upload and display your Company Logo.
- Display your Company Title.
- Display your Company Description.
- Add contact information to your emails using the predefined variables in your email template:
- Company Owner
- Company Address
- Company Contact Phone
- Company Contact Email
- Google Place ID
- Used to automatically open up Google Reviews for your business using the provided email template.
- Social Media Email Hyperlinks:
- Google, Facebook, Twitter, LinkedIn, Instagram, YouTube, Amazon, Pinterest, Etsy, and Shopify.
- Software is provided as-is and no warranty is given about its usability.
- Palm Tree does not collect any personal info or data (this does not include the data you send out in your emails or the email host you use to send out emails).
- Palm Tree is meant to be deployed on a local environment, therefore, you are responsible for securing your own data and production deployment.
- Palm Tree is not responsible for any damages or liabilities that may occur from the use of this software. Use at your own risk.
- You're ready to go! You should now be able to access Palm Tree.
- Feel free to use the provided email templates in the
/templates
directory under the Email menu, Email Body.
Tip
You may need to allow the port you're using to send your emails in your Firewall Settings (defined in the send_email.php
file - default port 465
). Ensure your anti-virus software is not blocking it as well.
Palm Tree from sending out emails as well.
Thank you for taking the time to read through this document and I hope you find it useful! If you have any questions or suggestions, please feel free to reach out to me.
Please reference the SUPPORT file in this repository for more details
I'm looking forward to seeing how this project evolves over time and how it can help others with their GitHub Portfolio.
Please reference the CHANGELOG file in this repository for more details.
Please reference the GitHub Project tab inside this repository to get a good understanding of where I'm currently at with the overall project.
- Issues and Enhancements will also be tracked there as well.
Feel free to submit a pull request if you find any issues or have any suggestions on how to improve this project. You can also open an issue with the tag "bug" or "enhancement".
- How to contribute:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/Palm-Tree
) - Commit your Changes (
git commit -m 'Add new feature'
) - Push to the Branch (
git push origin feature/Palm-Tree
) - Open a Pull Request
Please reference the CONTRIBUTING file in this repository for more details.
Below are some external resources I found helpful when creating Palm Tree:
- PHP - PHP is a popular general-purpose scripting language that is especially suited to web development.
- MySQL - MySQL is an open-source relational database management system.
- jQuery - jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.
- Bootstrap - Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development.
- Docker - Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.
- XAMPP - XAMPP is a free and open-source cross-platform web server solution stack package developed by Apache Friends, consisting mainly of the Apache HTTP Server, MariaDB database, and interpreters for scripts written in the PHP and Perl programming languages.
- Mustache - Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object.
- Imgur - Imgur is an online image hosting service.
- jQuery-Tabledit v1.2.3 - jQuery-Tabledit is a jQuery plugin that provides AJAX-enabled in-place editing for your table cells.
- PHPMailer v6.7.1 - PHPMailer is a full-featured email creation and transfer class for PHP.
- Google Business Profile - Turn people who find you on Google Search and Maps into new customers with a free Business Profile for your storefront or service area. Personalize your profile with photos, offers, posts, and more.
This project is released under the terms of the GNU General Public License, version 3 (GNU GPLv3), which ensures that derivatives of the software remain open source.
- The GNU GPLv3 is a "copyleft" license, ensuring that derivatives of the software remain open source and under the GPL.
- For more details and to understand all requirements and conditions, see the LICENSE file in this repository.
Author: Scott Grivner
Email: scott.grivner@gmail.com
Website: scottgrivner.dev
Reference: Main Branch