- [App] Set up Docker on localhost
- [App] Removed initial OpenChain experimentation due to lacking documentation
- [App] Substituted for Eris (TenderMint) chain
- [App] Set up functioning test chain
- [App] Begin work on common Android/iOS elements in React Native app
- [App] Add basic routing
- [App] Implement global styling and layout properties for the app
- [App] Implement basics for TasksListView
- [App] Spin off elements from TasksListView into standalone components
- [App] Add NotificationsListView
- [App] Add icon library
- [App] Provide ItemWrapper class
- [App] Fix higher-level component structure by moving into correct file
- [App] Individualise headers for each view
- [App] Adjust logic to allow mixing of global and local styles
- [App] Scaffolding for component
- [App] Enable passing data dynamically via props to comment components
- [App] Add libraries for forms and buttons
- [App] Implement component for CommentBox
- [App] Added linting tools (ESlint)
- [App] Added JSX and logic for TasksListView sectionHeaders
- [App] Fixed insets on all ListViews
- [App] Fixed bug related to
this
binding - [Tooling] Add NPM scripts to simplify emulator invocation
- [Chain] Add test configs for eris smart contracts, set up
app.js
correctly for dev environment
- [Chain] Configured custom REST eris service by building custom Docker image
- [Chain] Learned how to build a REST API to interface with a given chain via HTTP calls
- [Chain] Research on internal structure of Tendermint blockchain in order to leverage voting & consensus correctly; TenderMint Consensus Algo
- [Report] Summarise project report targets in order to structure project milestones appropriately
- [General] Meeting with Ghita; decision to tighten scope and move away from a formal user testing study for the actual report.
- [Tooling] Composed bash script for local env setup
- [App] Added basic REST API methods (
getBalance()
,setBalance()
) to interact with locally running chain
- [Chain] Started in-depth tutorial on solidity contracts
- [Chain] Started template collection file for Solidity contracts
- [Tooling] Improved
envsetup.sh
's environment variables - [Tooling] Simplified sequences of
eris
commands into NPM scripts (run rebuild
,run compile
) - [Chain] Expanded on
idi.sol
boilerplate withAccount
struct andgetBalance()
&getOwner()
methods - [Chain] Fixed up queries and test assertions in
epm.yaml
to match new contract methods
- [Chain] Advanced Solidity contracts (Manager contracts)
- [Chain] Learned smart contract design patterns via the Five-Types Model
- [General] Started
awesome-solidity
repo
- [Chain] Learned Advanced Solidity Features
- [Chain] Experimented with event handlers for the JSON RPC
- [Chain] Began work on
Task.sol
andTaskManager.sol
contracts - [Chain] Added eris library modules
eris-logger
&eris-wrapper
to facilitate building of Node app architecture
- [Chain] Experimented with different data structure implementations, i.e. LinkedList & SequenceList, to find best fit for project
- [Chain] !Issue! Had to find a workaround for the
library
keyword bug in the eris platform --> simply turned it into a contract --> less flexible than an actual library type though.
- [Chain] !Issue! Tested out the LinkedList implementation and replaced it with the SequenceArray implementation after running into retrieval issues
- [Server] Implemented the Express
server.js
module - [Server] Added some endpoints to test with in
server.js
- [Server] Added
taskManager
andtaskDb
modules to begin design pattern implementation (which pattern?)
- [Server] Added a test implementation of the Node
EventEmitter
- !Issue! Eris online compiler broke --> took forever to figure out that port
10113
was viable option because no goddamn documentation of it - !Issue! Eris local compiler Docker image did not do anything basically, TOTAL FAIL
- [Server] Expanded methods for
taskManager.js
to match those of the contract
- [QA] Added
chai
+mocha
test suite - [QA] Implemented tests for taskManager with
taskManager_test.js
- [Chain] Moved back to
0.11.4
compiler once it started working again
- [Server] Added
chainUtils.js
module to simplify handling strangely formatted data coming off the chain - [Server] Began proper JSDoc documentation for methods
- [App] Set up action/constant/reducer configs for Redux
- [App] Set up
configureStore.js
for Redux - [App] Redux sanity checks -> all good, functioning
- [App] Added
PureListView
library class from facebook/f8app - [Server] Properly implemented
GET /tasks
endpoint withasync.waterfall()
to handle callbacks - [App] Establish
TaskListContainer
component to separate data handling and view props
- [App] Added
addTask()
func to communicate withPOST /tasks
API bridge endpoint - [App] Fixed bug caused by implicit assumption in my test cases that
addTask()
input will be pre-formatted into HEX - [App] Added elementary
AddTaskView
component
-
State of Solidity as a bottleneck
-
Didn't make my tests atomic enough -> cascading failures if one test breaks -> lesson for next time
-
Trickiness involved in getting ListViews right in RN -> FB's
PureListView
helped a lot here to understand optimal structuring and mapping of data flow -
Started with IDs in contract schema, didn't really need them -> addresses double as unique IDs
-
Should've only done quick mocks of views as sketches and then implemented statically ad-hoc, too much time wasted on now not-implemented views
-
[Chain] !Issue! Had to find a workaround for the
library
keyword bug in the eris platform --> simply turned it into a contract --> less flexible than an actual library type though. -
[Chain] !Issue! Tested out the LinkedList implementation and replaced it with the SequenceArray implementation after running into retrieval issues
-
!Issue! Eris online compiler broke --> took forever to figure out that port
10113
was viable option because no goddamn documentation of it -
!Issue! Eris local compiler Docker image did not do anything basically, TOTAL FAIL
- GPG verification of users
- GPS logging for geographical corroboration
- Beyond simple .txt files,