The basic functionality of an Offline client is ready and the code base
is located at https://github.com/vishwasbabu/Mifos-Offline-Client.
The Client is built using XUL and Javascript, data is stored in a native
XML database (BaseX) with the aim of reducing coding complexity
For testing the same, restful services returning JSON/XML data for
authentication,getting loan officers,getting collection sheets based on
date and loan officers etc
were required.Since I fell a bit short of time I exposed these services
from mifos DB using native sql queries and a JAX-RS implementation
(RESTEasy), the code base
is located at http://mifoslive.git.sourceforge.net/git/gitweb-index.cgi
Next step would be to fork mifos on GitHub and expose RESTful services
with the same/similar contracts using spring MVC
Client Functionality (Only loan accounts for clients):
1) Data entry operator/Branch manager registers with the offline
client by entering his mifos username,password and url of their mifos
instance
2) Upon successful login, a hash of the users password is stored in
his home directory,future logins do not require an internet connection
3) After logging in,user is taken to "Today" tab where he can fetch
collection sheets for any loan officers in his branch (when internet is
available)
4) While offline, user can enter repayments, fees etc and save them
5) All saved and unsynced data from previous days is visible under
"Unsynced" tab. User can additionally modify any of the unsynced records
and sync them when an
internet connection is available
6)Once synced, records are archived and visible under "Synced" tab.
User can then optionally delete these archived records
7)The "Future" tab can be used to fetch collection sheet data for
future dates. Records displayed in this tab are non editable.
For purposes of ensuring data integrity,only collection sheets for the
next "N-1" days should be downloaded, where "N" is the loan repayment
frequency
in days
--
Thanks& Regards,
Vishwas
9986077286
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
I found some screen shots at:
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B9dBOJINVE7XNGQwN2Y2YjgtYjZkMi00YzhmLTg2MGMtZmQ4MDBmN2Q5ZmE3&hl=en
Since 2.2.x will be exposing the REST JSON API, it should be possible to
easily integrate this tool with Mifos.
Regards,
Jakub.
On 28.10.2011 18:25, Homo Sapience wrote:
> Very nice! Can we see XML structure? Also some screenshots or demo would
> be good to see.
>
>
>
>
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
>
>
>
> Mifos-developer mailing list
> mifos-d...@lists.sourceforge.net
> Unsubscribe or change settings at:
> https://lists.sourceforge.net/lists/listinfo/mifos-developer
------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn
about Cisco certifications, training, and career opportunities.
http://p.sf.net/sfu/cisco-dev2dev
Mifos-developer mailing list
mifos-d...@lists.sourceforge.net
Unsubscribe or change settings at:
https://lists.sourceforge.net/lists/listinfo/mifos-developer
Vishwas and Nayan created a prototype for offline collectionsheet
around May 2011, few weeks ago I started to think what should be the
client. I have decided to go forward the prototype of Mifos offline
client.
There are few things ahead to make it fully functional.
- Walk through of code. (for me)
- Document and understand client side storage structure (XML)
- REST API in Mifos which were created externally to make the client work.
- Create probably a free style build on ci.
- Make it available for users for general review/testing.
- Get back the feedback, polish the client and release it.
I will create the page under active projects section.
Cheers,
Udai
------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook
in minutes. BlackBerry App World™ now supports Android™ Apps
for the BlackBerry® PlayBook™. Discover just how easy and simple
it is! http://p.sf.net/sfu/android-dev2dev
Thanks and Regards, Vishwas
> 1)The documentation talks about JSON responses, do we also support XML also?
> (We could convert JSON to XML in the client if it is not available)
No, but we can have XML output, I would rather keep it json only as we
already have json2xml and xml2json plugins in flamingo. But if you
think this will give us performance(or any other kind) benefit then I
can enable XML output also.
> 2)Are the REST Contracts for the next release finalized? If so, where can I
> find them?
Those are probably not documented, but you can see issues created
(open) in last 20 days to see if new contract development are in
progress. I think let's just create our requirement without looking on
existing ones (as there are not many) and then we can figure out the
overlap and duplication.
Yes, we are trying to get REST API related work in 2.2.2
The REST services required for an Offline Client are described in
https://docs.google.com/a/confluxtechnologies.com/document/d/1dZWg7Dw6kGJbpowjHJRCgdX3r9EI3p2K2yCGcC0s6XM/edit?hl=en_US
(XSD's need to be updated with saving accounts)
While json services would be sufficient for retrieving Loan Officers
etc, It would probably be helpful if we could also have services
spitting out XML for getting/updating Collection sheets. This would be
helpful as we could store an entire collection(s) sheet fetched from the
server as is into the XML database and push data from the XML DB back to
the server (Would probably improve performance on a slow client machine
by removing overhead of xml->json conversion for large collection
sheets...though it could be argued that more network bandwidth would be
required)
Ideally we could have a single URL and pick the most appropriate
provider based on the Accept header sent from the client (JAX-RS
implementations like RESTEasy do this...though I am not sure about
Spring MVC..)
Thanks and Regards,
Vishwas
Thanks
> While json services would be sufficient for retrieving Loan Officers etc, It
> would probably be helpful if we could also have services spitting out XML
> for getting/updating Collection sheets. This would be helpful as we could
> store an entire collection(s) sheet fetched from the server as is into the
> XML database and push data from the XML DB back to the server (Would
> probably improve performance on a slow client machine by removing overhead
> of xml->json conversion for large collection sheets...though it could be
> argued that more network bandwidth would be required)
Let's keep this in the TODO list, we can deal with JSON for now, and
later will do the performance v/s network overhead discussion. it's a
non issue for now as we have json2xml in client and we can enable xml
on server side very easily.
> Ideally we could have a single URL and pick the most appropriate provider
> based on the Accept header sent from the client (JAX-RS implementations like
> RESTEasy do this...though I am not sure about Spring MVC..)
This is the patch that is needed configuration with spring.oxm and
xstream library in pom.xml to enable XML output.
http://pastebin.com/raw.php?i=ZfTQL24h
The URL remains same, it also work based on Accept header too, but I
like using prefix to the url like .json or .xml by which you can avoid
Accept header.
http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multiple-representations
I have been very excited about the traction around an offline module—and I also share Binny’s concern. It’s important to figure out how to handle all the nasty edge cases—so data doesn’t get corrupted. The other edge case is how to handle when products/fees are updated in the Head Office, but haven’t been synched up with the offline offices.
Given that this is just the first release of the offline module, the best approach might be to specify a limited set of features that won’t be supported—things like savings, declining balance, etc. Although I’m sure you are thinking about this already…..
Cheers,
Emily
Centralized and agreed by all ( or significant part) members.
Questions:
1. 1. Do you agree to use XML as import format ?
2. 2. If yes is the schema suggested by Binny accepted?
3. 3. How much LOE is requested to have 1st version of the API for import ? Can it be done in 2.2.2? At least as a 1st iteration?
To support community for those (I think useful ) changes I agree to use new (latest) release with import API in one of the implementation project and to test it in pre - production mode. Also: if we will succeed we have a small gift to programmer who will do that, no big expectations please , I am also from poor part of the world, but we like to share success and profit with our friends :-) .
I wonder if you are looking for something m-pesa plugin with back
dated transaction enabled?
Does anyone know if you can get advance collectionsheet (next 2-3
meetings) in Mifos, I don't think it is possible currently in Mifos
(online).
Next collectionsheet depends on what is submitted in current collectionsheet.
Udai
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
The rest API is documented here.
http://mifosforge.jira.com/wiki/display/MIFOS/REST+API+Reference#RESTAPIReference-Collectionsheet
STEP: Get the information in one format, convert it into save
collectionsheet format and submit.
I have used this acceptance test db dump.
https://github.com/mifos/head/blob/master/db/src/test/resources/sql/acceptance_test_dump.sql
check data on Mifos using "Enter collectionsheet"
MyOfficeDHMFT - > loan officer -> Default Center
this will set the date as 22-4-2011, this collectionsheet does not
include all cases, I will create better test case later.
You can use Google Chrome "Simple REST Client" extension for REST
manual testing.
https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb
JSON to XML convertor.
http://jsontoxml.utilities-online.info/
I also think that once the client will be ready it will make more
sense as same data model is used for online collectionsheet.
Udai
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
There is nothing wrong with your JSON, it's the REST call unable to
understand this JSON, It's something I have to fix on the server side
in REST API.
Thanks,
You would need the latest war, I have made the change so that save
collectionsheet works properly.
I had to remove one comma from the your save collection
"attendanceId":1}] which was earlier "attendanceId":1},]
Required String parameter 'json' is not presenthttp://localhost:8030/mifos/collectionsheet/save.json?json={"userId":1,"transactionDate":[2011,11,09],"receiptDate":null,"saveCollectionSheetCustomers":[{"customerId":10,"parentCustomerId":9,"saveCollectionSheetCustomerSavings":null,"saveCollectionSheetCustomerIndividualSavings":null,"saveCollectionSheetCustomerLoans":[{"accountId":17,"currencyId":84,"totalDisbursement":1000000,"totalLoanPayment":0}],"saveCollectionSheetCustomerAccount":{"accountId":16,"currencyId":84,"totalCustomerAccountCollectionFee":0},"attendanceId":1}],"paymentType":1,"receiptId":""}
the json string is send now as parameter json instead of data which
still can be passed as post for parameter.
Uda