Category Archives: Maestro

Development.

cbdb and TrackStar (and WordPress)

I’ve now spent some time with cbdb, and thought I’d share getting it running, and my takeaway from reviewing TrackStar and cbdb features (after that, it’s time to check in with Larry and see what tricks CMS is up to). First though are some comments on WordPress.

WordPress

I thought I’d include comments on WordPress, since I’m consolidating my personal content using WordPress.

  • WP has a nice plugin management system, with plugin’s automatically adding themselves into the application’s admin menu structure (or Dashboard).
  • If a WP module uses roles role-based authorization, the roles are managed using the plugin’s menu – or at least that’s how the NextGEN gallery plugin does it. Achievo has a single security profiles system that combines the privileges from each module (i.e. the actions that the role controls access to) onto a single role management page. To be honest, I’ve only ever used the system, but the privileges are grouped by module, and are a combination of basic CRUD actions that can be performed on a business object, with some extras.  My preference is the Achievo approach, with all the permission for a role managed in one place (so far, cbdb’s rbac seems close enough).
  • I like how NextGEN handles image uploading (a choice between a drag and drop interface or an Explorer-style interface fr uploading files, multi-file select in the Explorer-style interface, support for uploading zip image archives, and an upload progress bar). Similar functionality would work for uploading files in Maestro.

cbdb

  • The views generally show raw data, rather than user-oriented information (e.g. type, signed, grade …), and only the create/update form shows user-oriented data (a dropdown selector for Type and Grade, and radio buttons for Signed, Bagged and Collectable). TrackStar polishes things off a bit better in this area.
  • I like that the menu system for cbdb is created early in the development process compared to TrackStar, but the menu colors don’t work for me. I don’t agree that hiding menus a user isn’t authorized to use is good practice, and believe it actually leads to more confusion when users don’t understand why they don’t have have different menus presented, and prefer a static menu (greying-out menus that the user doesn’t have the authority to use, or showing the menu with data but greying-out the Edit or Save button).
  • The calendar wizard to enter dates looks nice, but it’s missing buttons to move between years (although I suspect it can be configured).

TrackStar

  • User management hasn’t been fleshed out as well as in cbdb, in particular not being able to view a list of users associated with a project.

ATK / Achievo Update

I’ve committed to the Yii framework now for building Maestro (check Maestro posts for more information). I’m not following the rss feed from the Achievo forum anymore, and I’ve removed (sigh…) the Achievo/ATK menu from my website so as to not mislead anyone as to my involvement. However, Achievo’s features and simple user and administrator interface are still unrivaled in an open source app of its type, and Maestro will be strongly influenced by Achievo.

In case the information is still of benefit to anyone, here’s the content from the static Achievo/ATK menu page.

- dale

Achievo / ATK

Achievo is a web-based Business Support Services (BSS) application for organizations, built using the ATK Framework and licensed under the GPL. Achievo was originally developed by iBuildings, but is transitioning to community leadership. Achievo includes a rich set of core modules, including support for employees, projects (phases and activities), timesheets, organizations, contacts, CRM (customers, campaings and contracts), and document management. There are a wide variety of Add-on modules available for additional functionality, and you can add or develop Custom modules for more more specific requirements. Achievo is stable and suitable for production.

The ATK framework is a special purpose PHP framework targeted at business applications. It allows database-type applications to be build quickly and with very small amounts of code. Its focus on business features makes it an excellent framework for HRM, CRM, data management and CMS type applications. The ATK framework was originaly developed by iBuildings, but is transitioning to community leadership. The ATK Framework is stable and suitable for production.

Adapto is a new project led by Ivo Jansch, who conceived Achievo and the ATK framework, to re-implement the concepts proven in the ATK framework to the next level, concentrating on easy to use CRUD functionality for relational databases and other data sources with only a few lines of code, and using the Zend Framework (v2) for caching, view rendering, database connectivity, etc..

 

Getting TrackStar running on Windows/XAMPP and FreeBSD

I’m learning Yii and worked through getting TrackStar (from Web Application Development with Yii and PHP) running locally on Windows/XAMPP, and then on FreeBSD. The trickiest part was getting the trackstar/.htaccess file to correctly hide index.php.

FWIW, I’ve also started experimenting with cbdb (Comic Book DataBase, from Yii Rapid Application Development Hotshot), and will get to CMS next (from The Yii Book). My selfish goal is to use all the applicable features to bootstrap Maestro development (and yes, I did actually purchase them all!).

I started with a zip download of the full TrackStar app from Jeff Winesett’s trackstar repo on GitHub (using trackstar/ directory in the repo) and a yii-1.1.13 download (instead of using the YiiRoot/ directory in the repo). The code on GitHub includes the book errata (compared to the chapter code in the download bundle). I tested TrackStar locally first using Windows XAMPP 1.8.1 (PHP 5.4.7 and MySQL 5.5.27), then moved it to a FreeBSD server.

1. At first (locally), yiic and phpunit didn’t behave as expected, but it was my fault. I edited trackstar/index.php to use yii-1.1.13, but neglected to also edit trackstar/protected/yiic.php and trackstar/protected/tests/bootstrap.php (and for completeness, trackstar/index-test.php also).

2. I had to change “truncateTABLE” to “delete” in two of the migration scripts in order to “migrate down” (MySQL 5.5+ can’t truncate InnoDB tables with foreign keys).

3. TrackStar now runs, but I can’t login because there are no users in the database. The solution was to manually add “User One” and “User Two” with SQL as per the book.

INSERT INTO tbl_user (email, username, password) VALUES
  ('test1@notanaddress.com','User One', MD5('test1')),
  ('test2@notanaddress.com','User Two', MD5('test2'));

4. Now I can login as either “User One” or “User Two”, but there are errors creating new projects (and there are new projects being added in tbl_project, which could be a bug…). Running “./yiic rbac” fixes the project creation errors. Now I can create projects, issues and comments, assign users to projects, delete projects, etc. TrackStar Rocks!

5. Next, I copied TrackStar from my development workstation to a FreeBSD server (PHP 5.4.10 and MySQL 5.5.30), modified permissions on directories (for reading, and writing to where necessary by Apache), created a trackstar.conf file, restarted apache and created a database. However, in order to connect to the database I had to change the connection string in main.php and console.php from “host=127.0.0.1″ to “host=localhost” to get the migration scripts to run and the main trackstar page to load (I also had to change the database username and password in the connection string, but those are secret ;-)  ).

6. Now connecting to the database and with the main page loading, navigating using the menu results in a 404 error “The requested URL /usr/local/www/trackstar/index.php was not found on this server.”

The cause of the final problem turned out to be the .htaccess file provided with TrackStar, which  assumes that trackstar is served from the root of the web server (i.e. http://www.dalescott.net/ is TrackStar), when I want “http://www.dalescott.net/trackstar/”. I don’t know why it worked locally on XAMPP with the original .htaccess (but figuring it out is on my ToDo list).

Here is my final Apache trackstar.conf

casper# cat /usr/local/etc/apache22/Includes/trackstar.conf
Alias /trackstar "/usr/local/www/trackstar"

<Directory "/usr/local/www/trackstar">
    Options All
    AllowOverride All
    Order Deny,Allow
    Deny from All
    Allow from All
</Directory>
casper#

and .htaccess

casper# cat /usr/local/www/trackstar/.htaccess
# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
</IfModule>

# Unless an explicit file or directory exists, redirect all request to Yii
# entry script
<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d

  # de facto std recommendation, but assumes/requires that app is root of webserver
  # RewriteRule . index.php

  # Yii forum post "Problem with .htaccess"
  # www.yiiframework.com/forum/index.php/topic/15694-problem-with-htaccess/
  # (1) RewriteRule ^.*$ /index.php
  # (2) RewriteRule ^.*$ /trackstar/index.php

  # seems to be more formal version of Yii forum post (1)
  # forums.laravel.io/viewtopic.php?id=5504
  # RewriteRule ^(.*)$ /index.php/$1 [L]

  # seems to be more formal version of Yii forum post (2)
  # ellislab.com/forums/membe%20r/140390/viewthread/234295/
  # RewriteRule ^(.*)$ http://www.dalescott.net/trackstar/index.php/$1 [L,QSA]

  RewriteRule ^.*$ /trackstar/index.php
</IfModule>
casper#

Maestro might move to Yii…

I might have been premature…

I wrote a week ago that I was moving Maestro, the SCC business support system project, to the Yii framework, which really was my intent at the time. However, I’ve been mired in database design for the past week working on the object layer for Parts&Vendors® (or at least what will be supported), but at the same time I’ve also been been working through Web App Development with Yii and PHP to get up to speed with Yii development.

By the way, Web App Development with Yii and PHP is a really great book. I’ve also been reading Yii Rapid Application Development Hotshot and The Yii Book at the same time. They all have their own perspective, development environment, workflow and tool set components (to some degree), which has been instructive. I’ve also just bought Yii 1.1 Application Development Cookbook, which has the best (only?) printed documentation on the Zii component library (the second edition is due out in only a couple months, but I couldn’t wait).

First, Yii is an active project and the books available are getting me up to speed much faster than I was with ATK. However, getting something as as simple as the ATK – A Business Framework tutorial isn’t nearly as simple as it first seemed. ATK has a better out-of-the-box theme experience, and while grid displays, searching, paging, etc. are bundled with ATK, Yii requires add-ons for the same functionality. The included Zii library appears to provide at least some similar functionality, but it doesn’t seem to be documented beyond the API – which certainly doesn’t make it makes it easier to use than ATK. However, to be fair, there is a community-supported Yii Playground project, that includes functional demos of Zii components with code examples (similar to the ATK Demo), but I don’t know many Zii components there are, and if they’re all in the playground or only some. Unfortunately though, although the books cover the functional stuff really well, and so far I haven’t found much on how exactly does one design a site. Hopefully Larry will get into more of that in The Yii Book

So, the jury is still out on the move to Yii. Learning about Yii is helping me understand ATK, but ATK is still an eventual dead-end. The best case (at least for me) would probably be if Adapto worked with Yii (instead of the Zend Framework). Maybe I’ll have to figure out how….

Maestro – the SCC Business Support System

I named the Swift Construction Company business support system concept Maestro after hearing Kohsuke Kawaguchi explain on FLOSS Weekly why he named his project Jenkins. Kawaguichi-san explained service applications should be named like a person, so that users identify with the application by saying things like:

  • Did you get the bill of materials from Maestro yet?
  • Was the drawing filed in Maestro?
  • Ask Maestro for a where-used report before we modify that part.
  • What drawing rev does Maestro say that serial number was made to?

Makes sense to me!

Maestro Business Opportunities

Where are opportunities for Maestro to be found? The greatest opportunity is actually in Medium Organizations, followed by Distributed Organizations and Small Organizations.

1. Medium Organizations

Medium organizations typically have 10 to 250 users, share a physical office, often have a sophisticated IT system based on Microsoft technology (e.g., MS DNS/DHCP/domain controller, MS Exchange mail server, MS SQL Server, MS SharePoint server), and have an entry-level enterprise ERP system for financial systems.

However, these organizations often don’t have yet formal processes for document vaulting, non-conformance and issue management, change management/version control, and product data management, and their ERP system may not provide traceability for serialized product throughout the organization. They may be certified to ISO 9000, but operationally they likely depend on manual paper-driven processes (real paper or electronic paper – stand-alone spreadsheets or word documents with the information contained not available electronically to other systems). Maestro can be used to consolidate existing systems, including new functionality is not currently available.

2. Distributed Organizations

Members of a distributed organization are not co-located. They do share a physical office and typically will not have dedicated shared resources such as groupware and shared network directories. Files need to be emailed to each other, or perhaps shared using a cloud application such as DropBox.

Maestro can be easily hosted by a cloud provider, or by one member of the organization on their local network, with other members accessing it over the internet (depending on security and logistics needs).

3. Small Organizations

A small organization typically has less than 10 members. Members are co-located in a shared office, and connected to a LAN with shared resources. However, the IT infrastructure often does not include a DNS or email server (connecting to the internet through with a dynamic IP address and consumer-grade router/switch). Shared resources are typically delivered through peer-peer technology (e.g., printers, shared directories, etc.).

In this environment, Maestro can be hosted on a user workstation, on a dedicated server on the local network, or with a cloud hosting provider (again, depending on security and logistics needs). If hosted internally, the local network router can even be configured to even allow access to the Maestro server from the internet using a dynamic DNS service.

 

Maestro Trial Screencast

I’ve been experimenting with creating Maestro screencasts using Ubuntu GNU Linux on my ThinkPad T23. Here’s a short demo showing the Project Management component. It should play without issue using FireFox, but you will need to install the Ogg Theora codec if you use Internet Explorer (FireFox comes with it built-in).  Oh, and there’s no audio….. (I said it was an experiment <wink>)

achievo-time-project_view

Welcome!

I’ll be musing here on providing enterprise solutions using using free and open source software for both large traditional organizations and new startups. I’ll also be writing about Maestro, the SCC business support system, a free and open source solution I’m developing for empowering enterprises with a philosophy of Transparency with Trust.

I hope you will find some of the topics of value, and also look forward to your feedback on topics that resonate with you.

Dale