Hi, I'm George

My Work

My Thoughts

Get in touch

Travelmore

Overview

Travelmore is a travel portal that seeks to connect Greece travellers providing them a place to share their travel experiences. Anyone can become a member and write articles, tourist guides, share photos and leave their comments for any Greek destination. Members earn reward offers for their next trip to a Greek destination. Travelmore aims to provide a pool with unbiased travel content written by travel funs, to people with any travel preference.

Status: Currently travelmore is in beta version and the first public release is expected by the end of 2013.

The team: This is a two people project; my other half who mainly undertakes the user experience architecture & copywriting, and I who is the database architect, back-end and front-end developer.

Idea

As a Greek passionate traveller and web fun, I’ve noticed that web lacks travel information and guidance for many beauties in Greece. So, some time ago, I decided to fill this gap using my development skills. I started planning, researching and finally stabilising my idea; create a travel web community where users can find and add travel guidance, tips and personal experiences. The idea doesn’t end here, travelmore.gr is a platform were users not only can fully plan their holiday and find demanding information, but also benefited from sharing their travel experience.

Research, Analysis, Architecture

The first steps of the project started with researching the existing market, analysing several similar online services and identifying their pros and cons. This research, gave us the opportunity to reassure that there is space in the market to provide an improved travel portal with more value to the users. The next step was to visualise the idea on paper creating user journeys / flowcharts and wireframes. Finally, the technologies and architecture were defined for the development.

Back end develpment

Travelmore is a Zend Framework application. It is being developed following the MVC pattern and module system of ZF 1.12.

The Model is represented by domain object classes and data mapper classes, the View by .phtml template files and View Helpers, and the Controller by Zend_Controller_Front and Zend_Controller_Action subclasses.
More specifically, Models comprised by domain objects that include the system's rules and data. The mapping of domain objects to the MySQL database is happening through Data Mapper classes. The presentation of Model is responsibility of both the View and the Controller.

The application is powered by a library on a public repository that contains application classes ( domain objects, data mappers, ZF extensions-plugins-helpers etc), ZF classes and other third parties classes. The code structure is based on PSR and my vendor name is TM (initials from travel more). Any personal classes that are non-application dependant are prefixed with GG (initials from my name).

  Library/
    ├── GG/
    │    │
    │    ├── Util/
    │    │   ├── Date.php
    │    │   ├── Math.php
    │    │   ├── String.php
    │    │   ├── Photo.php
    │    │   ├── Password.php
    │    │   ├── BitwiseFlag.php
    │    │   └── ...
    │    │
    │    ├── Zend/
    │    │    ├── Controller/
    │    │    ├── View/
    │    │    └── ...
    │    │
    │    └── ...
    │
    ├── TM/
    │    ├── Model/
    │    │   ├── DataMapper/
    │    │   │    ├── Abstract.php
    │    │   │    ├── Destination.php
    │    │   │    ├── User.php
    │    │   │    ├── Post.php
    │    │   │    └── ...
    │    │   ├── Destination.php
    │    │   ├── User.php
    │    │   ├── Post.php
    │    │   └── ...
    │    │
    │    ├── Zend/
    │    │    ├── Auth/
    │    │    │    ├── Acl.php
    │    │    │    └── Adapter.php
    │    │    ├── Controller/
    │    │    │    ├── Action/
    │    │    │    │    └── Helper/
    │    │    │    │         ├── LayoutLoader.php
    │    │    │    │         └── ...
    │    │    │    ├── Helper/
    │    │    │    └── Plugin/
    │    │    │        ├── LanguageSelector.php
    │    │    │        └── ...
    │    │    ├── Form/
    │    │    │    ├── Base.php
    │    │    │    └── Element/
    │    │    │        ├── Hidden.php
    │    │    │        └── ...
    │    │    ├── Validate/
    │    │    │    ├── Email.php
    │    │    │    ├── UniquePublicId.php
    │    │    │    └── ...
    │    │    ├── View/
    │    │    │    └── Helper/
    │    │    │        ├── Breadcrumb.php
    │    │    │        └── ...
    │    │    └── ...
    │    │
    │    └── ...
    └── Zend/
         ├── Acl/
         ├── Amf/
         ├── Application/
         └── ...

Front end development

On the front end development of travelmore I'm using HTML5, CSS, Javascript / jQuery, Ajax and Bootstrap as front end framework.

Below are listed some of the front end tools that are used.

  • File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images.
  • DataTables for advanced interaction controls to Html tables.
  • Client side form validation.
  • pushState + Ajax (pjax)
  • Lightbox (prettyPhoto)
  • ImageCrop
  • Google maps(gmap3)
  • Icons (Font awesome icons)
  • Web text editor (CKEditor)

Some of the features of Bootstrap that are being used are:

  • Grid system, 12 columns grid with up to 1170px wide for travelmore.gr
  • Fixed layout for travelmore.gr
  • Fluid layout for admin.travelmore.gr
  • Responsive design
  • Forms
  • Buttons
  • Tables
  • Navbar
  • Labels and Badges
  • Thumbnails
  • Alerts
  • Progress bars
  • Modals
  • Tab
  • Dropdowns
  • Tooltips
  • Popovers
  • Typeahead
  • Affix

Screenshots

Please check below samples of the project.