This is the old site! We've moved!
Please go here to see the current blog and site.
FBSite Web Site Content Manager
FBSite is a PHP 5 based, semi-AJAX, content management application. It allows users to maintain a custom web site without using HTML or scripting. FBSite simply makes it easy for someone to add and remove web pages, as well as edit them. The software is under development and is used as a beta test at the moment.
Quick Feature List:
- Add/Edit/Remove Pages
- Add/Update Images
- Simple Rich Text Editor using TinyMCE.
- AJAX functionality using the Dojo Toolkit. (Page/image additions and property updates are performed using XMLHTTPRequests, and complete without page loads.)
- No SQL servers! This system uses an SQLite database with PHP, so if you have to move to another location, just copy and paste. (And change your global root variable in the config file.) No hassling with a database setup. Backups are performed simply by copying the site and db file.
- Use most any web template. Just insert the code into the HTML header and footer.
- Use any navigation you want, just replace the items with new methods in the header and footer. As of version 0.5.17, we are now able to automate page navigation menu's at a single level. (no sub-menu's yet.) The menu system is based on a template system which can be customized to your own site design. You can opt for your own menu system too, however, menu generation is not automated.
- No template parsing or database connections on each page load! This was a big design requirement for me, because I didn't want to parse a huge template file and have that overhead on every page load. Same with database queries, I did not want my content to require a load from a database. Pages and navigation (not blogs) are "published" onto the file system as full php files. Page and menu properties, document data, and versioning is maintained in an SQLite database, and this is all compiled to publish into a file. Each page is its own php file, rather than a single index.php file loading the entire site from a database. To me, this is more efficient.
- Simple logging and statistics are provided, showing top page visits, referrers and search engine spiders.
- Multiple and flexible picture galleries. Adding an include in PHP code to a page your are editing will call a gallery based on category. This allow you to have multiple galleries, managed in one place.
- Simple web log system. Works just like the page editor.
- Object versioning. Web page documents and blogs are saved each time as a new version. While we have not fully implemented version management, the system is designed to allow you to "go back" to a previous state on each page or blog.
You can see the current change log and to do list
here, and screenshots are
here.
I am currently testing this with a couple clients, including on my own site. Fees for hosting or the sale of this software have not been determined yet.
What is FBCore?
FBCore is a project that I am slowly working on. There will be much more information in the future, but just to give you a bit of info, FBCore is a small business, web based, customer relationship management and billing system. It is designed for small businesses that can't possibly afford the giant/mamoth systems like Peoplesoft or the like. We small businesses need an easy and affordable system for basic billing and customer tracking, wouldn't it be nice if we could have at least a few of the features that these enterprise class systems can provide?
We call it FBCore because, FB is for First Byte, and it is designed to be used as a *core* development object template for web appliations. What I mean by that is a little complicated to explain, so bare with me. Most, maybe 95%, of what I need to build for a client is actually simple. Businesses all need the same basic stuff at a basic level. They all need to track customer names and addresses, many need to track simple order or communiction information. Of course, the details of how they do these things is different, but at a core level, it's all the same stuff really. I need to be able to use a *core* set of mini-applications for development on customer projects. The core is basically a base set of applications like, contact management, order and billing tracking, customer communications, and other things. Now what I do is take this core set and build upon it. Customize it for my customer. Add new things or remove others. This way I dont have to reinvent the wheel each time a project comes up. Obviously, every client has their own set of requirements and issues to solve, and a lot of development always needs to be done, but if they need to track names and addresses, I don't have to rebuild the whole thing to get started. I can then say, "Well I have half of this in my Core system, now we can just add your new modules and customize the Core, and we're there." This is why I call my basic Accounting system FBCore, as it has the basic, core elements that I will use to build off of for future projects.
This system isn't anywhere near complete, but version 1.0 (or more apropriately, version 0.2) is in use now at 1st Byte Solutions. When I have more complete, I will share it here! And yes, it will be for sale.
Update as of 7/16/05
Currently we are at version 2.1.2. The system is running on Zope 2.7.4 using an ODBC connection to Microsoft SQL Server. The program tracks information in these modules so far:
- Customer names and addresses (can be extended to Contacts or for sales leads and even employee tracking too)
- Items. This is a very, very simple product listing. It will be extended to include inventory management in the future.
- Order/Estimates. Again, simple, but it does a great job for me so far allowing me to create an order before the sale and estimate my item costs.
- Invoicing. This is my favorite part of the system. It has some complex SQL code running to calculate and manage the current billing information of my customers. Currently, how I use it, when I finish an on-site job for a client, I use my laptop and quicly print out an Invoice and/or email it to my client. It's a quick process. But, it also allows me to manage several invoices to multiple clients at once.
- Accounts Receivable. While this is not a *real* accounting system, this is the place that I manage the receiving of money. It allows me to see who owes me what and when it's due. I can print statements and reprint old invoices, as well as record payments and issue credit memos.
I have plans to convert this system to MySQL 5 in the near future because from my perspective, it's better to have this kind of application runnable on either Windows or Linux. Using MS SQL does not allow me to do that. A major reason why this is important is because it needs to have a low cost to the customer, and part of making it cost less is to provide internet hosting of this application. In order to do that I can't host on Windows, it simply costs more than I want to spend. Plus, I like Linux too much, and I trust it. However, many clients may already have a Windows server and with Mysql, I can run my application on that too.