Sample Application - Personal Finance
(Hosted in Google AppEngine)
We have built a simple "Personal Finance" application over Google AppEngine to demonstrate the capabilities of Zoho Reports API along with the CloudSQL functionality. This document discusses about how this application has been built and the Zoho Reports API capabilities that were used for the same.
Personal Finance Application
"Personal Finance" is a simple personal application to keep track of your income and daily expenses. The application is hosted in Google AppEngine. The reports in the application are all created in Zoho Reports and embedded back into the Application.
Hosted in Google AppEngine:
Google AppEngine lets the user to run their web applications on Google's infrastructure, where in users can also use the Google's data store for the application's data storage needs. Applications built over Google AppEngine are to be developed using Python language.
Application Design:
We have created two tables, namely IncomeDetails and ExpenseDetails in Zoho Reports to store the income and expenditure details of the application for reporting. Equivalently IncomeDetails and ExpenseDetails class objects extending db model class has been created in the Google data store.
When users submit income or expense details, the data gets stored into the Google AppEngine data store. Also the data gets pushed into Zoho Reports for reporting, using the
Zoho Reports API. Reports created with this data in Zoho Reports gets embedded into the Personal Finance application.
Check the Zoho Reports database used to generate the reports in Personal Finance application
here.
In the coming sections, we will discuss about each functionality in the Personal Finance application along with how it has been implemented.
Next: Home page dashboard - How is it implemented?
Below is the error, we are getting while implementing this code.
Logging into the server
Exception in thread "main" java.net.UnknownHostException: accounts.zoho.com
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
at java.net.Socket.connect(Socket.java:507)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:546)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:390)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:121)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:81)
at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1.doit(ControllerThreadSocketFactory.java:90)
at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$SocketTask.run(ControllerThreadSocketFactory.java:157)
at java.lang.Thread.run(Thread.java:595)
Please suggest, what should we do ?
Hi,
We apologize for the issue you have faced.
This issue might occur because of the DNS lookup to accounts.zoho.com fails. We assume that you are using Google App Engine Client Sample code which is available in the below URL:
http://css.zohostatic.com/db/api/v1_0/m6/ZohoReportGoogleAppDemo.zip
Please follow the below steps to resolve this issue:
1. Open the file "com/adventnet/zoho/client/report/python/ReportClient.py"
2. Change the following variable values as below:
self.iamServerURL="https://72.5.230.78"
self.reportServerURL="http://72.5.230.120"
(i.e., Use the IP addresses instead of host name as mentioned above. We are looking into this issue and we will be fixing it soon)
3. Now try the code
Kindly get back to support [at] zohodb [dot] com for further details.
Sorry for the inconvenience caused, if any.
Thanks & Regards,
Manohar Nixon S
Zoho DB & Reports