Wednesday, April 9, 2014

Back-end changes in iFreeTools

We have recently invested in migrating iFreeTools code to the latest computing environment on Google App Engine. As a result of these changes, iFreeTools is now able to utilize computing resources in a better way, than it was possible earlier.

The new version having these changes has already been rolled out in our free multi-tenant deployment, hosted at http://creator.ifreetools.com and we are in the progress of rolling this version for all single-tenant deployment customers.

What these back-end changes will mean for you :

If you are a user of the free multi-tenant deployment, you will be glad that we can serve more of the growing number of free applications. You may have also already experienced lesser latency than earlier, in the recent days.

If you are paid customer, using our single-tenant deployment option, you will be able serve more users with lower computing instance hours. This is now possible because each computing instance can handle more than one request at the same time (multi-threaded processing).

These back-end changes also enable other possibilities and new features, including some features which have been oft requested by our users. 

Keep following our blogs for more details on these new features.

Saturday, November 30, 2013

Assigning colors to database records, for use in Calender views

We have now enabled an option to show entries in calendar view with configurable background and text colors in your favorite online database builder.

To use this feature, you need to add 2 new attributes and provide them with aliases as backgroundColor and textColor. You can assign the colors directly in forms (selecting from a list of choice-values) or you can assign them automatically using formula.

When the calendar views are displayed, iFreeTools will check to see if there is an attribute with alias as backgroundColor and textColor within the record, and if so, it will use those attribute's values for the calendar rendering.

As an example, let us consider a database of issues, reported by customers. If the issue records had a Severity attribute, which can take values as Critical, Major, Minor, and Cosmetic and if we wanted to view the entries in the calendar, such that the background color is based on this Severity, using the following colors for those severity values :

Severity : Critical, Major, Minor, Cosmetic

Then, we can add formula attributes to set the required color values for the records, so that they are used in the calendar view. Our sample app to showcase this new feature will similar to the issue tracker application we had built in one of the earlier walk-through, with the following attributes :
  • Title attribute as Single-line Text.
  • Description attribute as Multi-line Text.
  • Steps to reproduce attribute as Multi-line Text.
  • Severity attribute as Multi-line Text with choice values Critical, Major, Minor, Cosmetic & alias as severity.
  • Background Color attribute as Single-line Text with alias as backgroundColor & formula expression as :
    switch(severity == "Critical", "red", severity == "Major","orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue").
  • Text Color attribute as Single-line Text with alias as textColor & formula expression as :
    iif(severity == "Critical", "white", "black").
  • Status attribute as Single-line Text with choice value as New, Accepted, Closed & alias as status.
  • Tester attribute as Lookup field (Reference), with Refers To as User.
  • Date Logged attribute as Date with formula expression as :
     iif(dateLogged, dateLogged, today()).
  • Date Closed attribute as Date with formula expression as :
     iif(status == "Closed", iif(dateClosed, dateClosed, today()), None).
Now assuming we also wanted to mark the closed issue as green, the formula for Background Color can be changed to be similar to the one given below :

iif(status == "Closed", "green", switch(severity == "Critical", "red", severity == "Major", "orange", severity == "Minor", "yellow", severity == "Cosmetic", "lightblue"))

The configuration of the Attributes is given below for reference:



We can now proceed to add entries into the issue records and they would get assigned with background and text colors based on the formula expressions we have specified.

The following image shows the calender view with some sample entries having the configured background and text colors.


Existing entries will have to be re-indexed once (from under More Actions > Re-index, in the list views) to have the formula attributes updated.

Hope you like the new feature. Feel free to let us know your feedback and suggestions.

Tuesday, October 29, 2013

Specifying default values for form fields, using expressions

iFreeTools Creator, your easy web-based database software built for hosting on Google App Engine, now supports specifying default values for attributes in forms. The default values can be configured using the Default Value Expression in Attribute definition.


Expressions should return the result in the expected data-type. For details on using expressions, you may refer to our help docs.

Sample default value expression for each data type are given below:

Data Type

Examples

Single/Multi-line Text

  • "Velachery"
    Text values have to be provided within quotes.
  • val_from(user(), "Name")
    to set the currently logged-in user's name.
  • val_from(user(), "Email Id")
    to set the currently logged-in user's email-id.
Yes/No checkbox (Boolean)


  • True
  • False
  • val_from(user(),"Role") == "admin" to mark as Yes, if the current user has admin access.
Number Integer/Decimal numbers
  • 1
  • -2
  • 33.5
  • -44.75
  • val_from(fetch_one("Fee Details", "Year":year(), "Month":month()}), "Fees"))
    to fetch the values form an existing database record, in this case, from Fee Details entity, which matches the condition of having the Year attribute as the current year and the Month attribue as current month. From this matching record, we get the default-value from the Fees attribute.
Single line text - Choice Value

  • "Cash"
    Any of the choice values can be provided. For example, the above is valid if the choice values were : "Cheque", "Cash", "Bank Transfer"
Date
  • today()
  • today() + timedelta(5)
    to set the date value as 5 days from the current date.
Date and Time
  • now()
  • now() + timedelta(0,3600*10)
    to set the date-time value as 10 hours from the current date-time.
Image
  • key_id(val_from(fetch_one("Default Values",{}), "Default Profile Image"))
    to fetch the image form an existing database record, in this case, from Default Values entity, having an image-attribute with name as Default Profile Image.
Geographical Location (Geo Point)
  • "13.1207829,80.2377078" 
    in case you know the co-ordinates of a specific location, the value has to be provided within quotes.
  • val_from(fetch_one("Default Values",{}), "Default Location") 
    to fetch the location form an existing database record, in this case, from Default Values entity, having an geo-point-attribute with name as Default Location.
List (with string values)
  • ["English", "Spanish", "French"]
  • val_from(fetch_one("Default Values",{}), "Default Languages")
    to fetch the values from an existing database record, in this case, from Default Values entity, having an list-attribute with name as Default Languages.
Lookup field (Reference)
  • key_id(fetch_one("Teacher",{"Name":"John Smith"}))
    to fetch the values from an existing database record, in this case, from the Teacher entity, having Name as John Smith.

Hope you like our new feature. If you need assistance in using this feature or if you have suggestions, feel free to use the feedback form in our application.

Sunday, June 30, 2013

What's Cooking : Internationalization & Localization support

We are glad to share the news that iFreeTools will soon be supporting internationalization and localization.

Once available, you will be able to select the language in the App Settings and the application will be rendered using the selected language.

For the first cut, we are enabling support for Tamil, a south-Indian language, which we have been using in our testing. The image below shows the Add Attribute form in Tamil.



You will be able to try the Tamil language in our Labs set up currently and the changes which will make it into the other deployments very soon.

Help translate iFreeTools and get a $90 discount* on your single-tenant deployment!

If your language is not already supported in iFreeTools Creator and if you are interested in helping us support the same, feel free to get in touch with us for the language mapping file. Once the translation is completed and imported into your single-tenant deployment, you should be able to have the application in your language.

Update : 


Spanish language support : 

Our effort to support multiple-languages was triggered by Ms.Belén Lara's detailed blog post on iFreeTools Creator, which is equivalent to a quick-start guide in Spanish : ...crear una Base de Datos on-line. iFreeTools.

After we added support for multiple languages, she has also provided the Spanish translation for the application. Coming from a technologically savvy database user, we believe her translations should work out well for the Spanish users of our application.

Thank you, Ms.Belén Lara!

Italian language support : 

We have rolled-in Italian language support in iFreeTools Creator, thanks to the efforts of Mr.Adriano Caresani. If you are looking to build your online database application and would like hire an Italian-speaking consultant, you should get in touch with Adriano.

Thank you, Adriano!



*Terms and conditions, for this offer :
  • The compensation for the translation mapping file, which will become a property of iFreeTools, will be provided in the form of discount to subscription fees alone.
  • This discount is applicable for one paid, single-tenant deployment and towards the first year subscription fee alone.
  • Even if the language mapping is already available with us, translation to popular country-specific dialects may still be eligible for a $45 discount.
The terms and conditions of this offer can be refined / altered / the offer itself might be withdrawn at any time. You are requested to kindly get in touch with us using the feedback form, to know if you can avail this offer.

Sunday, December 16, 2012

Enabling fine-grained Public Access to your Online Database

A lot of our users have been requesting an option to enable publishing of selected subset of data from their online database application, which they have hosted on their Google App Engine account and mapped to their Google Apps domain.

This may be for use-cases like sharing the knowledge-base section from the online database application or may be, to allow users to view a directory of some sort, without having to ask them to login into the application, using their Google / Yahoo! / Google Apps user account.

We have now enabled this public-access facility as a premium feature in iFreeTools, available for paid single-tenant deployments. Preview of the feature is also made available in the free multi-tenant deployment at http://creator.ifreetools.com, which will work like in the paid deployment, except that it will list limited data, so that you can try out the feature before you sign-up for the paid deployment.

To enable public access to your database, you will have to :
  1. Define a new Auth Profile with permissions set for the View operation and select the fields which you would like to make visible for public access. Other permissions set for Add / Edit / Delete / etc.,. will be ignored, when this auth-profile is used in the context of public-access.
  2. Add a new user with email-id as public-read-only-user@ifreetools.com, associating the auth-profile
That is it!

You can now access the application by tweaking your URL to use a /x/ instead of /b/. That is, if the direct link to your application instance is..
http://creator.ifreetools.com/b/12341234

then, the public access for this web-application will be available at..
http://creator.ifreetools.com/x/12341234

All "write" operations (Add / Edit / Delete) are disabled for the public-access. Your users can still use the embed-able public web-forms, to enable adding new records into the database.

All the public access pages will be marked with a noindex and nofollow meta-tag, so the contents would not be indexed by crawlers which follow this meta directive. This meta-tag can be removed on request, in paid single-tenant deployments.

Hope you like this new feature. Feel free to use the feedback form in the application and let us know how we can help you meet more of your business use-cases with iFreeTools.

Wednesday, October 31, 2012

Twilio integration : Trigger SMS messages from your online database

We are glad to add another premium feature in your favorite online database application for Google App Engine. iFreeTools is now integrated with Twilio to send out SMS messages, triggered as part of workflow actions (database change triggers) or from within the list view (manual trigger).

This facility is available as a preview in the free version, where the messages will get added as Notification Tasks with Preview status, while in the paid single-tenant deployment (starts at $99/year), the messages would be sent out to the mobile numbers with the task's status getting marked as Completed.

To make use of this SMS facility, you will have to first configure your App Settings (under Admin), to provide the Account SID and the Auth Token from Twilio, as shown below. If you also have a short-code configured for your use, you can specify the same to be used as the Sender ID, else you can provide your Twilio number (listed under the Numbers tab)


Your Account SID and Auth Token will be available under the dashboard tab on Twilio :
https://www.twilio.com/user/account



For the Sender ID, proceed to the Numbers tab and copy your Twilio number. If in case you have a short-code, you can provide the same in the App Settings in iFreeTools.



The Send SMS option will automatically list all the phone numbers available in the records, which have been marked with Other Rendering as Phone, in the attribute details page.




The option to Send SMS will be available in the list views for records which have a phone number, so that you can select the records and trigger an SMS manually, as shown in the image below..


The resulting page will work similar to how you can send out email-notifications using mail-merge like field values. The Send SMS option will also be available as part of the Workflow actions, so that you can trigger the SMS automatically when the records get added/updated/deleted, as shown below..


You can verify the contents and the status of the messages from under Notification Tasks, which will list all the notifications triggered from the application.



Phone number format (as per Twilio docs) : 

The phone number values need to be in the [+][country code][subscriber number including area code] format to work without issues. Other formats are not guaranteed to work with Twilio, as detailed below..

We strongly encourage E.164 number formatting for all phone numbers both in the ‘to’ and ‘from’ fields. This format is the internationally-standardized format for all phone numbers, and it includes all the relevant information to route calls and SMS messages globally. E.164 numbers can have a maximum of fifteen digits and are usually written as follows: [+][country code][subscriber number including area code]. Phone numbers that are not formatted in E.164 may work, but it depends on the phone or handset that is being used as well as the carrier from which the call or SMS is being originated. 
For example, to convert a US phone number (415 599 2671) to E.164 format, one would need to add the ‘+’ prefix and the country code (which is 1) in front of the number (+1 415 599 2671). In the UK and many other countries internationally, local dialing requires the addition of a 0 in front of the subscriber number. However, to use E.164 formatting, this 0 must be removed. A number such as 020 7183 8750 in the UK would be formatted as +44 20 7183 8750.
Hope you like the new Twilio integration. Keep sending in your feedback and suggestions on how we can make your online database application hosted on Google App Engine work better for you.


Sunday, September 2, 2012

Enable Record-Locking to allow users to Lock / Unlock database records

We have now added a new feature in your custom online database application creator to enable record-locking facility for your online database records. In the Add / Edit Entity form, you will now find an option to enable record-locking for that specific entity's records, as shown below.


Once you check on the Enable Record Locking option and save the entity, you will now see options in the list view and in the details view to lock / unlock / request-unlock of database records. These options will be made available only for those users who have edit permissions to the record.

The following image shows all the database records in unlocked state, with a button under Actions to have them locked.


When the records get locked, the action buttons would change to reflect their locked status. You can also get to know who has currently locked a record from the Locked By attribute, as shown below.


When another user who also has edit permissions to the same record accesses the list view, the user will get to see the locked status. They will not find the option to edit / delete the locked records. They can request for the record to be unlocked. This will trigger an email to the user who has currently locked the record, in case of paid single-tenant deployments, while notification tasks will get added in the free version with Preview status.


Admin users can unlock records locked by any other users, if such a need arises. All locking / unlocking operations are automatically audited and will be available under Admin > Audits.

Record-locking is a premium feature available as a preview in the free version, wherein you can enable this facility for one entity (record type). If you are a paid single-tenant deployments customer, you can enable record-locking for any number of entities.

Hope you like the new feature. Feel free to get in touch with your feedback and suggestions for improving iFreeTools, to help meet more of your business requirements.