jobberBase dev blog

jobberBase is the open-source job board software
that helps you set up a jobsite in minutes!

Go ahead and Download jobberBase »

Thank you! :)

This post is dedicated to all the people in our community.

Guys, you’re doing an awesome work with your jobberBase sites and I was amazed to see so much activity going on in the forum!
I love to see some of you — who have mastered the application — helping others start out. It’s great!!

So I just want to say THANK YOU all, for your support and involvement.

I plan to catch up with the active issues on the forum, but I’m going through some tough weeks (it’s all good) and my time is extremely limited. I’m always available via e-mail (filipcte [at] gmail.com), though :) .

Soon, we’ll release the final 1.4 version, with bug fixes and, hopefully, some small additions :) . In the meanwhile, you can get it from the repository.

5k downloads of jobberBase

Just thought I should mark this moment, as we’ll pass 5.000 downloads of jobberBase in a couple of hours. Sweet :) .

P.S. Any amount in PayPal donation is much appreciated, thank you! :)

1.4, the most impressive update yet!

We are *extremely happy* to announce that we’ve launched version 1.4 (beta 1), with a bunch of new features (as promised). This release was mostly possible due to Ștefan Petre’s involvement, which I can’t thank enough! :)

As promised, we present you a few new cool items:

1. You can translate jobberBase UI through a single .ini file

The file is _includes/translations.ini and it should contain all the text strings in the site. You would only need to edit a few images (‘post job’ button and logo) to have a complete translation.

2. Static pages can now be created/edited/deleted from admin

We’ve moved most of the static pages in the database, to make it easier for you to edit their content. You can also create other pages and link to them. The system is pretty straightforward!

3. Change categories from admin

No need to get your hands dirty in phpmyadmin or other db administration tool. Categories can be created/edited/deleted from admin, now. You can also reorder them, through drag and drop!

4. Change admin password

Another missing feature in 1.3 was the ability to change your admin password from the admin panel. Now you can.

5. Bug fixes

Most had to do with the search engine. Thanks to all who posted fixes on the community forum! :)

Well, that’s it. Go ahead and download jobberBase 1.4 beta 1!

Your feedback is always very precious, so please don’t hesitate :) . The final version 1.4 will be launched after we make sure there aren’t any bad bugs out there.

P.S. You may also check out our SVN repository, for “nightly builds”:
svn checkout http://jobberbase.googlecode.com/svn/trunk/ jobberbase-read-only

Need someone to further develop jobberBase?

If you need someone to deploy, edit or extend jobberBase for your custom needs, I totally recommend a good friend of mine’s web development agency, simbyo. My friend’s name is Cristi, cristigcb [at] gmail.com, and he can totally help you out!

His team is very familiar with jobberBase and has already made a number of clients happy :) .

Multi-language, soon!

Just wanted to let everyone know that we’re working on implementing a multi-language system in jobberBase! This is only possible because Ștefan Petre, the guy who created Interface for jQuery, has joined the jobberBase task-force :) .

Therefore, version 1.4 (or just call it 2.0?) will be a huge step ahead for us!

Consider the SVN repository

It’s beginning to be a real challenge for me to manage the project, udpates and everyone’s questions, so please be patient :) .

I know an upgrading guide would be nice, especially if you’ve installed version 1.1 and want some features from 1.3.

What you could do is checkout the code from Google Code SVN repository: http://jobberbase.googlecode.com/svn/

You can do it like this:
svn checkout http://jobberbase.googlecode.com/svn/trunk/ jobberbase-read-only

Then, you can compare what you have with the latest stuff…

I’m also working on setting up a wiki, where it’d be great to have some tutorials! If you wish to contribute to the project, one way you could is by writing short tutorials on various issues. The forums is a great place to find answers, but it’s getting a lot of new content which is hard to organize.

Aaaaanyway… keep it real :) .

1.3 is out with goodies: admin panel

Yeeey, go on and download the latest and bestest jobberBase version, while it’s hot! :)

This is what the changelog says:

  • Added an admin panel (thanks to Lavinia Creivean)
  • Added a survey page: the ideal job (as seen on www.jobber.ro/jobul-ideal/)
  • Improved pagination support (thanks to Mihai Mocanu)
  • Fixed some bugs related to search
  • Translated the sitemap page (forgot to do it, before :p)

The admin panel

Assuming you’ve installed jobberBase on localhost/jobberbase/, the admin defaults to localhost/jobberbase/admin/.
Default username: admin. Default password: admin. You may change these in the ‘admin’ database table.
The panel allows you to activate, deactivate and delete ads. It’s pretty straightforward and nothing fancy… but it does the job well!

“The ideal job” survey

localhost/ideal-job/ shows a survey like this. We did this on jobber.ro to find out what people think is an ideal job, then use the data to show companies what people are interested in.
If you don’t want this feature, just take out the link from _templates/header.tpl and the case ‘ideal-job’ section from index.php. Also job_params, job_requests and job_requests_params database table (they hold the data).

If you want to use this survey, though, but can’t figure out how to change stuff, please let me know and I’ll try to guide you. It’s a simple system I developed, but you may actually get better results using a professional survey-builder :) .

That’s (almost) all, folks!

Of course, bug fixes are always there in any new release and this one has them, as well. Mostly small issues in the back-end.

Hope I didn’t miss anything.
Have fun! :)

Have you found the stats, yet?

Stats? What stats?

Well, I’ve created a page that displays some useful overall information about the site.
Assuming your URL is http://localhost/jobberbase/, the stats can be accessed at http://localhost/jobberbase/stats/.

You probably don’t want other people to see them, so you might want to protect the page somehow. On jobber.ro, I use an extra param (/stats/EXTRA_PARAM/) based on which I perform a basic authentication (if EXTRA_PARAM exists, display page). :p

What stats are available?

  • A list of the latest job applications + total no. of apps + maximum apps per day, in the past 30 days + average apps per day, in the past 30 days.
  • List of performed searches on the site + total no. of searches + max searches per day in the past 30 days + avg apps per day in the past 30 days.

On jobber.ro we also track the site widgets, like this:
Whenever someone clicks on a job ad she sees on a 3rd party site (that displays the jobber site widget), we save the referrer. This way, we know EXACTLY how many people actually used the site widget and how popular it is on their sites :) .

Metrics is always good!
Enjoy! :)

How to implement reCAPTCHA

If you haven’t been spammed by bots, yet, you probably will soon be :D .
On jobber.ro, we use reCAPTCHA to prevent spam. It’s a hosted captcha provider and much more!

Step 1. Create an account with reCAPTCHA

Go ahead and create an account, download the PHP API (and copy recaptchalib.php in the _includes/ directory, and sign up for an API key.

Step 2. Add reCAPTCHA when posting an ad

config.php
Define 2 constants, one for public and one for the private API key:

define('CAPTCHA_PUBLIC_KEY', '12345_YOUR_PUBLIC_KEY');
define('CAPTCHA_PRIVATE_KEY', '12345_YOUR_PRIVATE_KEY');

Also add the following line (find the other require_once lines), which includes the recaptcha library:

require_once '_includes/recaptchalib.php';

_templates/publish-write.tpl
Right above the submit button’s fieldset, insert the following code:

<h2 class="publish_section">Anti-spam</h2>
<fieldset>
  {literal}
    <script type="text/javascript">
      var RecaptchaOptions = {
        theme : 'white',
        tabindex : 9
      };
    </script>
  {/literal}
  {$the_captcha} <span class="validation-error">{if $errors.captcha}
  <img src="{$BASE_URL}img/icon-delete.png" alt="" />{/if}</span>
</fieldset>

page-write.php
On line 2, we generate the html code that displays the captcha in the template:

$smarty->assign('the_captcha', recaptcha_get_html(CAPTCHA_PUBLIC_KEY));

Next, we perform a simple validation when posting the ad. Find the following line:

if ($_POST['action'] && $_POST['action'] == 'publish')

A couple of lines below it, after you initialize the $errors array, add this code:

$resp = recaptcha_check_answer(CAPTCHA_PRIVATE_KEY,
$_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if (!$resp->is_valid)
{
  $errors['captcha'] = 'Incorrect code';
}

Then, we need to add the captcha validation in another section of page-write.php, the one that handles the ad edit. Find the following line and add the same code as above:

else if ($_POST['action'] && $_POST['action'] == 'edit'

That should be it :) .
Enjoy!

Digg jobberBase

If you like jobberBase, you can now also digg the story! :)

Always happy to hear from you!

Follow us on twitter @jobberbase
or email us at hello [at] jobberbase.com