A prototype has been created based on a draft system requirements (see post – Paper Prototype 1: https://agnetpro.wordpress.com/2012/03/09/paper-prototype-1/ ). The requirements were drafted through consultations with individuals that work in rural communities, agricultural entrepreneurs, and from the objectives stated in the project draft specification.
User questionnaire was converted to an online version.
Over the next week, the questionnaire will be made available to potential users, system requirements would be refined, UML diagrams will be designed, and the technologies to be used would be finalised. This would lead to the development of a refined paper prototype. Once these steps have been completed, an additional two weeks will be spent to combine these technologies, and the software can begin its testing phase.
A working prototype is being developed along with the technical research to meet with the system specification. At the moment, the prototype consist of a user login/registration system. A form which enables the user to post content to a blog and send the post as an SMS message. The prototype also consists of a processing.js implementation and a database containing records of US Agricultural productivity. The database is not connected to the processing.js implementation as yet. The next steps in the development includes the implementation of a market, allowing two way communication between website and FrontlineSMS, and connecting of processing.js to database. This stage of development is scheduled to be completed within the next two weeks.
A PHP-MYSQL Query was used to get values from database, the php variable was then passed to processing. The next step would be to pass an array of values to processing.js. Other methods of accessing mysql values to be explored.
A node.js – socket.io server has been configured to handle communication between FrontlineSMS. The server receives messages forwarded from FrontlineSMS, and writes it to a database, which is viewable on blog. The next step would be to find/make a suitable dataset, containing quantity of products on market, and price of product. This information may be obtained from using data mining algorithms to predict prices and quantity based on existing information.
Prototype now consists of a Processing.Js implementation which gets arrays of values from a MYSQL database via PHP and JSON. The prototype also consist of a connection FrontlineSMS to website. Over the next couple days, basic functionality will be added. This will include: the user being able to add a product to electronic market using SMS, the user being able to query information from database using SMS technology, and a basic visualisation of fruit production. The results from the user questionnaire will then be used to justify the designs, or make the necessary adjustments.
Basic visualisation of single fruit production from 1961 – 2010.
Web based market shopping basket implemented.
Add product to basket via sms implemented.
Presentation current version of prototype. The task for the next week is to create a user centered demo of project.
Uploaded screenshots of Demo Version 0.01 and Demo Version 0.02 to blog. Also uploaded a list of things to do. The aim would be to finish this list of things before presenting Demo Version 0.03. The project will then go through an incremental development process until the final deadline.
Prototype consist of FrontlineSMS, a NodeJS – Socket IO server, and a web interface. The interface consist of a page displaying products, a registration/login system, a page displaying valid products and form for adding a product, and a page with a plotted graph of the production of bananas in Grenada from the years 1961 – 2010. Years is plotted on the x axis and production on the y axis. The graph is displayed on the HTML5 canvas using ProcessingJS.
A user is able to send a message from a mobile phone with a keyword to add a product to the market. The message, however, must be a particular format or else the server throws an error message. To resolve this problem, the server would have to be adapted to accept a wider range of inputs. Things to do include making the interface more user friendly.
To be done:
Query price and quantity information.
Return results from query to mobile phone.
Display results graphically.
Get population data.
Get price data.
Automatically update display.
Downloaded datasets from FAO’s website. The datasets include population estimate, consumer price indices, agriculture net production value, and total agriculture product value.
Presented demo in lab session. Next step is to make the program more robust, so users would be able to send in sms messages, and system would respond to different types of messages. Presentation slide and screenshot of program to be uploaded. Feedback from presentation – important to develop robust network that can be tested by stakeholders.
Draft report sent to supervisor for feedback.
Configured FrontlineSMS keyword to join groups. Two groups configured – sellers, and buyers.
Over the past week, work has been carried out around the project area. This included sourcing relevant reference materials, sharing relevant material on facebook project page in an effort to get potential users interested in project, and reviewing of technologies used in prototype – these were deemed necessary to maintain creativity and ingenuity of project and ensure the outcome meets the stated requirements.
Presentation Slides from demo in lab session has been uploaded. Screenshots of web interface has been uploaded. Results from user survey has been tabulated. Graphs to be plotted (possibly using Latex – to compile final report). NB. graphs may also be published.
TO BE DONE OVER THE NEXT TWO WEEKS:
Continue working on report.
Implement SMS functionalities – register to join communities, leave communities, contribute to forum, send image of products, retrieve information.
Develop web interface.
Develop server – implement artificial intelligence
Complete project plan – including testing plan
Plot questionnaire results
Visit local farms/food suppliers
Registration through SMS implemented. Requires – First Name Last Name firstname.lastname@example.org Village/Town, Country MobileNumber. FrontlineSMS adds user to group/community – user is then able to receive the specific network updates, NodeJS/SocketIO server verifies the message content is appropriate, checks if user mobile number is already in database, if user exist, user receives a response – mobile number already exist (to be implemented request password reminder or contact administrator), if the mobile number does not exist in database, the user details is added, and the user receives a response with their login details. (To be compiled – instructions of system use)
Implementation of interface for Nodejs/socket.io server using the ofxNodejs bridge. Currently the node mysql module is throwing errors, may have to use the ofxMysql bridge to query database rather than the node-mysql module.
Problem with node-mysql has been resolved. Issue was resolved by reinstalling the nodejs package from the npm rather than the installation package that is available on the nodejs website. It was discovered that the Mac OSX installation package did not contain all Nodejs underlying dependencies, which was resolved in reinstallation through npm (see post Nodejs openFrameworks).
Things to do:
– User de-activate account
– User view activity history
– User add to forum
– Regular expressions (blog post)
– Server Interface
– implemented user de-activate account
– implemented user add to forum
– created a GUI with start button for server (screenshots will be uploaded)
– server responds to any message (bugs reported)
– Server request and server response displayed in gui
– 160 maximum words enabled in textbox (web interface) for sending sms (bug reported – button click not displaying send sms link on first click)
– Buttons created for navigation (screenshots to be uploaded)
Things To Do:
– External HTTP query – to other websites and frontlinesms
– Email functionality (files attachment)
– Web interface
Problem with XML plugin for grabbing weather information from google’s weather api (See material: https://agnetpro.wordpress.com/2012/04/19/implementation-technical-background-research/)
Server gui (See blog post: https://agnetpro.wordpress.com/2012/04/16/agnetpro-demo-server/)
– Start button
– Displays request
– Displays results
– Displays response
– Background colour changes on server request and on server response
Implemented a dictionary lookup of terms using Natural – a Natural Language Toolkit implementation in Nodejs (See material: https://agnetpro.wordpress.com/2012/04/19/processing-sms-messages/) .
Implemented a HTTP request from server, this can be used to read data from external websites or send custom request to FrontlineSMS – such as forward a message to group of users (See material: https://agnetpro.wordpress.com/2012/04/15/nodejs-simplified-http-request/).
The project is going through a debugging stage (see material: https://agnetpro.wordpress.com/2012/04/20/debugging-and-testing-agnetpro-pt1/), breaking up code into functions that can be used in other parts of program and implementing all user requirements.
TO BE DONE:
Implement all functionality
– User sign up
– User join groups
– User leave groups
– User add product to market
– User trade product
– User request product/market information
– User share tips on agricultural products
– User request particular products
– User locate sellers of products
– User locate buyers of products
– Email system
– Complete database
– Web interface – including data visualisation
Fixed problem with sendsms link not being displayed when submit button is pressed. (To do: disable button when pressed).