Web2project

Submitted by peter on Wed, 10/03/2018 - 18:40

Web2project is a Web based project management application. There is an old Web site at web2project.net and up to date information at github.com/web2project. The code is at github.com/web2project/web2project.

Do you need project management across multiple sites, including remote sites? A Web based project management application could be the answer. Do you need something where the data can be shared with other Web based applications? You might be able to use web2project and read the database from your other applications. Web2projects offers potential in many areas. Installing web2project for testing is easy and free. Web2project is worth a look.

Web2project was spun off from dotProject in 2007. I attempted to use web2project version 1.3 in 2010 and stopped using it. How is it developing today? Looking through my test installation, after some small fixes, shows web2project has a wide range of useful data and reports.

There is a major database issue opened in 2014 that was not fixed for three years. I contributed a solution in September 2017. Some code was changed in November 2017. My test of the latest code on October 3, 2018, shows the problem is fixed. Three years is a bit to slow. You would need someone with some knowledge of the Web to fix any problems that affect your usage.

On October 2, 2018, the the same problem was reported for a new install. The recent report of the old error might be related to the confusion of old and new Web sites with old and new links to code. The old site needs an update to match the new code. All pages should be changed to point to the new release. Make sure you use the latest version from Github.

That specific database problem is related to the database version and occurs with MySQL from 5.6 onward. There appears to be no other problems from new versions of MySQL. There are significant problems related to the latest version of PHP. You need someone who knows PHP. You need a programmer who can contribute code fixes back to the Github repository because I doubt the changes will be added any other way.

One of my code fixes was marked as "we do not care", "the error does not appear to break anything". This is unacceptable for code development because hidden errors produce far more difficult errors down the track where it is difficult to detect.

Download

The download on October 3, 2018, is 4.4 megabytes. There are 1,837 files using 12.5 MB on disk. The requirements are listed as follows.

  • PHP 5.3.8+
  • Mysql 5.x+
  • Apache 1.x+ or IIS 7+
  • PHP extension GD (for Gantt Chart generation)
  • PHP extension mbstring (only if you're using multi-byte strings)
  • zlib (for output compression)

The minimum PHP level should be 5.5 for compatibility with PHP 7. If the code runs with PHP 5.3, you can make it compatible with 5.5 using only very small changes. PHP 5.5 is available everywhere. There is no reason to be stuck on obsolete code.

If the code works with Apache, it works with Nginx. Apache 1 was obsolete a long time ago and should be replaced by Apache 2.2 or 2.4. There is a slight configuration change between 2.2 and 2.4.

PHP GD mbstring should be standard in every PHP installation. PHP GD is a common requirement although sometimes people use Image Magick instead.

The install process also requests LDAP but does not say why.

The server install process, under Server API, says "CGI mode is likely to have problems". Nginx uses fast CGI for speed and flexibility. I will find out if there are any problems. Under Supported Web Server, the install repeats the warning as "It seems you are using an unsupported web server. Only Apache and IIS are fully supported by web2Project and using other web servers may result in unexpected problems". They should include Nginx if they want big customers to use web2project.

Install

The download includes a file named README.mb and that file points to wiki.web2project.net/index.php?title=Installation for installation instructions.

I did the usual setup. For a database, I used PHPMyAdmin and created a user web2project with a matching database. I copied a default template for a Web site then expanded the web2project file inside the template. My test site runs as web2project.local. When the Web site starts, you have to select the NoScript icon and authorise access for Javascript from the site. I set the permanent permission on for web2project.local.

The documentation tells you to visit the Web site then the Web site redirects to /install/index.php. There is a flash of a critical error message then the redirect.

The first error

PHP Recoverable fatal error: ini_set():
Cannot set 'user' save handler by ini_set() or session_module_name() in classes/w2p/System/Session.class.php on line 188

request: "GET /index.php?m=system&a=systemconfig HTTP/1.1"

referrer: "http://web2project.local/install/index.php"

The error is fixed by deleting the following line in classes/w2p/System/Session.php at line 188.

    ini_set('session.save_handler', 'user');

While you are browsing the code, look at the code inconsistencies. They use two different types of indent. They must be in transition form old to new. The ideal indent for structure, using braces, is shown next. This gives you consistency and readability.

x
    {
    // code
    }

Their code uses both of the following formats. The first is a step towards readability. The second is a silly format that comes from the ancient dungeons of the C language.

x
{
    // code
}
X {
    // code
}

index.php

Page displays start from /index.php or, during the install, /install/index/php. Index.php starts by including /base.php. Base.php starts by switching off errors. Ugly. Who knows how many errors are suppressed. Change the following line in base.php.

ini_set('display_errors', 0);

Change it to:

ini_set('display_errors', 1);

Change the following line in base.php.

error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT);

Change it to:

error_reporting(-1);

Many errors

There are many code errors revealed when you switch on error reporting. Always test software with all error reporting switched on. Reject software that tries to "fix" errors by hiding them.

I fixed some and reported the changes to web2project at github then gave up. I use PHP 7.2 and there are many warnings from PHP 7.2 about obsolete code. All the changes are things that should have been fixed for PHP 5.3. They are all things that could be fixed while maintaining compatibility with very old versions of PHP.

For testing functionality, use an older version of PHP, perhaps 7.1 or 7.0. Leave error reporting switched off. Every few months, copy the working version to a test version, switch on all error reporting, then attack all the errors. With several developers contributing a day per month, the code could be clean in a couple of months.

Interesting code examples

Web2project uses many libraries of standard code. A small number of the libraries are interesting examples of things you could use in other Web sites. Some of the libraries are full of obsolete code you should not use.

Conclusion

Web2project appears to have too few users and developers for the great leap forward into PHP 7. Web2project needs a serious kick forward with extensive testing using PHP 7.2. I do not have a use for web2project justifying the work. If web2project looks interesting and you can spare a PHP developer for a few hours each week, run up a site for testing. It is free. The only thing you lose is a little time, something you lose no matter which application you choose.