## IT Documentation Accounting and Invoicing System for Small MSPs.

### Online Demo

* https://demo.itflow.org
* USERNAME: demo@demo
* PASSWORD: demo

### Notice
This project is still in early Beta stages and is considered work in progress we highly do not recommend storing any confiential information like passwords in ITFlow. Many changes are being permformed and may cause breakage upon updates. We are hoping to have a stable 1.0 release by July 2022.

### Features
* Client Documentation
  * Contacts - Keep track of important individuals
  * Locations (Head Quarters, Satellite locations)
  * Vendors (ISP, WebHost, MailHost, Software Company, VOIP company etc)
  * Assets (Laptop, Workstations, Routers, Switches, Access Points, phones, etc)
  * Password Manager (AES Encrypted in DB)
  * Domain Names  
  * Software (Manage Applications Licenses, Renewals etc)
  * Networks
  * Files (PDF Contracts, Manuals, Firewall Backup Configs, etc)
  * Documents (Tech Docs, How-tos, Processes, Procedures, Notes, etc)
  * Tickets
  * Client Documentation (Single Downloadable IT Documentation for a client)
* Client Portal
  * Invoice, Quotes and Payment information
  * More to come soon...
* Invoicing
  * Automatically Emails Past Due Invoices to clients
  * Automatically Email Receipts upon marking invoices paid
  * Automatic Recurring Invoices
* Quotes
  * Automated customer approval process using a link that is sent via email to the primary contact
  * One Click turn Quotes into Invoices
* Accounting
  * Expense Tracking (Track internal business expenses such as Office Supplies, Professional Services, Equipment, etc)
  * Profit and Loss Reports
  * Income/Expense Summaries
  * Travel Mileage Tracking
  * Accounts (Manage several accounts including cash on hand, bank accounts, etc)
  * Account Transfers (Keep track of money transfers from account to account inclusing deposits)
* Alerting/Notifications
  * Low Account Balances
  * Domains to expire
  * Password reset reminder for customers
  * Past Due Invoices
  * Software License Expiration
* Calendar
  * Schedule Jobs
  * Overview of Invoices, Domains, asset Warranty Expiry, etc
  * Schedule Events
  * Automatic Email Reminders of upcoming calendar events to customers
* Dashboard
  * Overview of business financials
* Mailing List - Notify users of upcoming change controls, marketing etc 

* API
  * XML Phonebook download for VOIP Phones
  * FreePBX Integrated called ID (When call comes in it queries the Database and displays the company name on your caller ID as well as alerts you in the CRM)
  * Pull Emails for Mailing list Integration
  * Check account Balances using FreePBX IVR

* Multi-Tenant - One Instance Multiple Companies and Users
* Audit Logging - Logs detailed actions of users and events
* Permissions / Roles
* 2FA Login Support (TOTP)


### Installation Instructions

* Change directory to your webroot
* git clone https://github.com/johnnyq/itflow.git .
* Create a MariaDB database (Note MySQL is broken)
* Point your browser to your Web Server
* Go through the Setup Process
* Login
* Start inputing some data

#### Requirements
* Webserver (Apache, NGINX)
* PHP7+
* MariaDB (MySQL is broke)

### Technologies Used
* Backend / PHP libs
  * PHP
  * MariaDB
  * PHPmailer

* CSS
  * Bootstrap
  * AdminLTE
  * fontawesome

* JS Libraries
  * chart.js
  * moments.js
  * Jquery
  * pdfmake
  * Select2
  * SummerNote
  * FullCalendar.io

### API Calls
* Caller ID lookup (Great for integrating with your phone system like FreePBX, and having your VOIP phone return the client's name thats calling in) - /api.php?api_key=[API_KEY]&cid=[PHONE_NUMBER] - Returns a name
* XML Phonebook Download - /api.php?api_key=[API_KEY]&phonebook 
* Client Email (great for mailing lists) - /api.php?api_key=[API_KEY]&client_emails - Returns Client Name - Email Address
* Account Balance for Client (can be integrated into multiple places for example in FreePBX Press 3 to check account balance, please enter your client ID your blanace is) - /api.php?api_key=[API_KEY]&client_id=[CLIENT_ID] - Returns Account Balance
NOTE: [API_KEY] - is auto generated when a company is created and shows up in General Settings, this can also be changed manually.

### Future Todo
* MeshCentral / TacticalRMM (Export Assets Info to ITFlow, Exports common software applications to Software)
* CalDAV to integrate with 3rd party calendars
* CardDAV to integrate with 3rd party Address books
* Stripe Integration for online payments
* Toast Alerts with recent caller that matches caller ID in database which allows you to click on the toast alerts and bring up the clients account right away.
* FIDO2 WebAuthn Support for passwordless auth (TPM Fingerprint), (USB Hardware keys such as Yubikey)
