powerplant:gsoc2018:ideaslist

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
powerplant:gsoc2018:ideaslist [2018/01/28 12:41] – [Index] aimeejuliapowerplant:gsoc2018:ideaslist [2018/01/28 12:45] (current) – [Explanation] aimeejulia
Line 321: Line 321:
  
 ---- ----
 +
 +===== Client-server communication infrastructure =====
 +
 +You can find this [[https://work.ecohackerfarm.org/issues/1315|task #1315]] on our [[:project_management_system|PMS]]
 +
 +==== Explanation ====
 +
 +Users should be able to use most powerplant features offline. For this purpose the clients need to cache user data and do calculations on the client machine.
 +
 +Aim of this project is to define and implement the client-server communication infrastructure. This will be achieved by creating an object on the client side that communicates with the server, and separates data processing from the UI components. On the server side we have Processor, so let the name of this object be ClientProcessor.
 +
 +When data on the server changes the clients need to synchronize. On the other hand, when the user has done changes offline and later goes online, the changes need to be pushed to the server for permanent storage. Part of this project is to create the update mechanism between ClientProcessor and Processor by which the clients synchronize with the server.
 +
 +==== Required skills ====
 +
 +  * JavaScript
 +  * Node.js
 +  * Express
 +  * Mongoose
 +  * React
 +  * Redux
 +
 +==== Expected results ====
 +
 +  * Generic synchronization mechanism between clients and server.
 +  * Client refactored to use ClientProcessor for all data processing.
 +  * Crop and crop relationship data cached on the clients, and related calculations moved from the server to the client side.
 +  * CLI refactored to use ClientProcessor (or another class in the same hierarchy), with the goal that all client features are available also from the CLI.
 +  * Full integration test suite that uses ClientProcessor (or another class in the same hierarchy).
 +
 +==== Code challenge ====
 +
 +Refactor the system to cache crop and crop relationship data on the client, and do the related calculations on the client side instead of using HTTP requests to server.
 +
 +==== Mentors ====
 +
 +[[powerplant:involved|Petteri Pitkänen, Franz Gatzke]]
 +
 +-----
  
 ===== Project template ===== ===== Project template =====
  • powerplant/gsoc2018/ideaslist.1517139702.txt.gz
  • Last modified: 2018/01/28 12:41
  • by aimeejulia