Localjobs Mobile Platform

Introduction

LocalJobs main objective is offering a new approach to the online recruiting services, and make them accessible for the users – individuals or companies – which considered until now that a service like this is too expensive or too complicated to use.

Starting from this idea, we have developed an online national recruiting service, easy to use, user friendly ever for the users that are not familiar with this type of communication platform.

The mobile application provides an integration with our web portal localjobs.ro, it provides many functionalities divided in 2 categories:

Companies Functionalities:

Alerts

Job manangement

CVs database management

Job creation

Candidates Functionalities

Alerts (By criteria)

CV Management

CV Creation

Job application

Job search

Jobs view

Favorite jobs

System requirements

Installation guide

Linux (DEBIAN Kernel)

First we must install LAMP

Then it is required to untar the provided archive containing the project source

The folder containing the sources will be saved to the following path: /var/www/html/

The file database.php found at the following path: app/settings/ must be configured with the database credentials (see the figure)

Using the sql file Localjobs-Database.sql found in the project root in the SQL folder we must create the database localjobs in localhost/phpmyadmin

Import the file LocalJobs-Database.sql

Windows

First we must install XAMPP – https://www.apachefriends.org/download.html

After the installation has successfully finished, click on explorer

Untar the provided archive containing the project source code into the xampp folder

Delete the current htdocs folder

Rename the public_html folder to htdocs

As on Linux, the file database.php found at the following path: app/settings/ must be configured with the database credentials (see the figure)

Press on start for the modules Apache and MySQL

Client

If the developer/user installed the project on localhost, it can access the the platform at the following URL: http://localhost

Attention!

If the project is installed on localhost, any mobile device you want to connect to the platform, must be connected on the same network in which the computer/server on which you have installed the platform is running. Also for using the android app on the localhost server you have to edit the MainActivity.java file located at the following path: MobileApp\app\src\main\java\ro\localjobs\mobileapp (See the figure)

And then the project must be recompiled into a new APK which must be installed on your mobile device.

The project can be accessed from any mobile device at the following url: http://mobile.localjobs.ro/

Used technologies

The used technology to develop the project are HTML, CSS, JavaScript, PHP, Silex, Twig, Doctrine ORM, MySQL (MariaDB), Android Studio (Java + XML). I have decided to use web technologies to assure the online availability so the mobile platform can be accessed on any mobile device and also on any device with a browser installed and an internet connection.

I have also used open source libraries – Twitter Bootstrap, JavaScript, JQuery, Hammer.js, Font Awesome

Front End

The views are rendered by the template engine called Twig. Twig is a modern template engine for PHP developed by SensioLabs and it’s one of the default components of the Symfony Framework.

Why Twig?

Fast: Twig compiles templates down to plain optimized PHP code. The overhead compared to regular PHP code was reduced to the very minimum.

Secure: Twig has a sandbox mode to evaluate untrusted template code. This allows Twig to be used as a template language for applications where users may modify the template design.

Flexible: Twig is powered by a flexible lexer and parser. This allows the developer to define its own custom tags and filters, and create its own DSL.

Concise: The PHP language is verbose and becomes ridiculously verbose when it comes to output escaping:

<?php echo $var ?>

<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

In comparison, Twig has a very concise syntax, which make templates more readable:

{{ var }}

{{ var|escape }}

{{ var|e }} {# shortcut to escape a variable #}

Template oriented syntax: Twig has shortcuts for common patterns, like having a default text displayed when you iterate over an empty array:

{% for user in users %}

* {{ user.name }}

{% else %}

No users have been found.

{% endfor %}

Full Featured: Twig supports everything you need to build powerful templates with ease: multiple inheritance, blocks, automatic output-escaping, and much more:

{% extends "layout.html" %}

{% block content %}

Content of the page…

{% endblock %}

Easy to learn: The syntax is easy to learn and has been optimized to allow web designers to get their job done fast without getting in their way.

Of course, PHP is also the language for which you can find the more template engine projects. But most of them are still developed with PHP4 in mind, and do not embrace web development best practices:

Extensibility: Twig is flexible enough for all your needs, even the most complex ones. Thanks to an open architecture, you can implement your own language constructs (tags, filters, functions, and even operators) to create your very own DSL.

Unit tested: Twig is fully unit-tested. The library is stable and ready to be used in large projects.

Documented: Twig is fully documented, with a dedicated online book, and of course a full API documentation.

Secure: When it comes to security, Twig has some unique features:

Automatic output escaping: To be on the safe side, you can enable automatic output escaping globally or for a block of code:

{% autoescape true %}

{{ var }}

{{ var|raw }} {# var won't be escaped #}

{{ var|escape }} {# var won't be doubled-escaped #}

{% endautoescape %}

Sandboxing: Twig can evaluate any template in a sandbox environment where the user has access to a limited set of tags, filters, and object methods defined by the developer. Sandboxing can be enabled globally or locally for just some templates:

{{ include('page.html', sandboxed = true) }}

Clean Error Messages: Whenever you have a syntax problem within a template, Twig outputs a helpful message with the filename and the line number where the problem occurred. It eases the debugging a lot.

Fast: One of the goals of Twig is to be as fast as possible. To achieve the best speed possible, Twig compiles templates down to plain optimized PHP code. The overhead compared to regular PHP code was reduced to the very minimum.

Backend

The backend is created using PHP with a micro-framework developed by SensioLabs called Silex which uses the Symfony Framework components. As stated before the views are generated with the Twig template engine.

Why Silex?

Silex is a PHP microframework for PHP. It is built on the shoulders of Symfony2 and Pimple and also inspired by sinatra.

A microframework provides the guts for building simple single-file apps. Silex aims to be:

Concise: Silex exposes an intuitive and concise API that is fun to use.

Extensible: Silex has an extension system based around the Pimple micro service-container that makes it even easier to tie in third party libraries.

Testable: Silex uses Symfony2's HttpKernel which abstracts request and response. This makes it very easy to test apps and the framework itself. It also respects the HTTP specification and encourages its proper use.

Data storage

The data is stored into the MySQL Database, the database design has been realized in such a way to solve any many-to-many problem.

The database is composed by 59 tables in which are stored each detail about the user or company.

The table names are clearly suggesting what data is stored in each of them.

User Flow

The interface is built using HTML, CSS, JavaScript, Twitter Bootstrap, Hammer.js and JQuery.

The main page on which the users gets when it’s logged in, it’s the jobs page, where he will have displayed the latest jobs (ordered by the announcement type and by the date it was posted in a descending order)

The same applies for the mobile user.

Marketing

Statistics

From the launch moment (8 weeks ago) : our platform has:

More than 400 jobs registered

246 active jobs

206 registered companies

230 registered candidates

Marketing Analysis

In Romania, the online recruiting services market is a very competitive environment. If we take into consideration criteria like the sales figure,

the number of job announcements, we can identify 4 important competitors from which 2 of them are continually fighting for their leadership position on the market and they are followed by 2 other competitors of medium size.

*From the table below, we can see that the 2 most important companies are EJOBS and BESTJOBS

which are running accumulated businesses of over 5 million euros and they are controlling 70-75% of the

online recruiting market.

Request. Opportunity durability:

The total number of employees in Romania, is of approximately 4.3 million, according to the INS – December 2013 .

In these terms, on the EJOBS site there are currently more than 2.5 million and on the BESTJOBS site, the main competitor, more than 2 million CVs registered in the database.

It is obvious that a part of the people interested in finding a job are registering their CVs on many online recruiting platforms, to multiply their chances of finding a job by their criteria.

The turnover evolution of EJOBS and BESTJOBS(2010-2013)

LocalJobs – Marketing mixture

Bibliography

http://getbootstrap.com/

https://jquery.com/

http://stackoverflow.com/

http://silex.sensiolabs.org/

http://twig.sensiolabs.org/

http://hammerjs.github.io/

Similar Posts