teamforus / forus Goto Github PK
View Code? Open in Web Editor NEWOnline platform voor maatschappelijke projecten.
Home Page: https://forus.io
License: GNU Affero General Public License v3.0
Online platform voor maatschappelijke projecten.
Home Page: https://forus.io
License: GNU Affero General Public License v3.0
If we start using a language file from the start it would be easier in a later stage to translate the messages to a different language and reuse specific words like 'Error'.
A benefit from implementing localization is that all spellings errors could be fixed easier; @linda-90 and @GerbenBosschieter have some knowledge about basic scripting in HTML/CSS and could help keeping the language file up-to-date.
laravel docs: https://laravel.com/docs/5.6/localization
example in code base:
https://github.com/teamforus/forus.io/blob/c8d696f58423f923aefdafe8e036fdf0465e7a87/backend-php/app/Rules/IdentityOldPinCode.php#L45
I discussed with Dan how to structure the repository for development. After more thought it is a better idea to seperate the base PHP code to a seperate repository to make it easier to deploy (otherwise you clone all documentation to test/production containers)
This has low priority because we don't need to deploy forus.io yet to any server.
Based on #4 and https://github.com/teamforus/implementation/issues/12
The expectation is that the extensions will talk a lot to the services (oracle) (#14), and that the me app and later also forus.io (the generic webshop) will talk directly to the api (#7).
A lot of the extensions we already have for Zuidhorn, we just have to go over them one by one to redesign them to be generic enough to be scalable to other municipalities.
Add addresses fields in database for the following tables:
field for each
address string[42]
The generation of addresses will happen in the blockchain service
based on https://github.com/teamforus/implementation/issues/12 and #3
was not in flowchart
We're noticing some miscommunication about common terms like "account", "identity", "key" etc.
We should add a glossary to our documentation.
Based on: #2
create budget - out of scope
select validators - out of scope
set validation criteria - out of scope
based on flowchart #15
Establish connection between docker containers of the records repository and IPFS records service
The question has repeatedly came up: “will every sponsor have to open their own bunq account?” Implementation wise this will be a challenge. Also on the tech side, this means we have to make, maintain, secure and support many API connections. This is will be quite cumbersome.
The alternative is to open a bunq account ourselves. Of course this presents a challenge as well, but it also presents benefits: we can simply give a municipality our bank account number and a code to put in the description of payments (like coinbase) so we can automate the tracking of incoming money. Municipalities can increase their budgets proactively, or we can invoice them, which is closest to their current way of working. We will still give them a financial overview dashboard where they can see their “saldo”. It will also make it possible to support donations from parties that don’t have a bunq account. They can simply add funds with ideal or wire transfer.
To learn how (and if) this can work its important to study the feasibility. The main hurdles are in our own financial administration. We need to check what are the exact requirements to do this. We would, of course, not be the first (foundation) to do something like this. We also have the benefit that we can use the API to automate a lot of the administrative burden.
Hosting the money ourselves will heighten the guarantee off the availability of funds (what would happen in our system if the api connection of one of the x sponsors would stop working? Or if they lower the budget?). If we do this, it will be one of the main services that our foundation can offer. It will be a strong USP, since it significantly lowers the barrier to sponsorship.
Design API endpoints that implement the functionality as described in #2, #3, #4 and #5
The api will be used as the main way to connect to the platform while it is not yet practical for frontends and applications to connect directly to a fully decentralised backend (see #6 for details).
The documentation: https://github.com/teamforus/forus.io/blob/dev/docs/api.forus.io.md
After setting up a development environment #11 create a "Hello, World!" that implements:
See https://github.com/teamforus/forus/tree/master/docs#architecture for an overview
Repo | Description | Assignee |
---|---|---|
**me | Identity | |
**forus.io | Core shop | |
**api.forus.io | API | |
**services.forus.io | Services | |
**forus.io-nodejs | NodeJS | |
**forus.io-mongodb | MongoDB | |
forus.io-ipfs | JSON-LD | |
forus.io-ethereum | Contracts |
**Priority
Select how much to fund / add funds
Select who to fund ["criteria" - "value"]
Select what to fund
Crowdfunding (available to the public, cannot edit fund)
Research on the possibilities of using RabbitMQ for communication between services
Expand the API and add a route for receiving a message, handle it by sending to the IPFS and Blockchain containers (services), and display back the previous messages
Let's push all wireframes and flowcharts to the docs folder of this repo.
How do you guys feel about seperating all the screens from all the wireframes? because there are alot of the same screens in all the wireframes and its easier to finish seperate frames than all in one go.
@jastam, @martijndoornik and @dev-weget are able to add new resources to the forus AWS console.
They add their service to AWS and have a meeting to combine those services in a web front end / api
Develop a front-end for the hello world application.
Research on the service for push notifications.
RabbitMQ / Websockets / other implementations
The version we use is the Comunity Edition (https://www.docker.com/community-edition).
Get it from the docker store (https://store.docker.com/search?type=edition&offering=community).
Create an account for downloading, you will use this account for pushing images to hub.docker.com as well
These steps from the installation manual are important before you continue:
If the installation is successful i would suggest going through the general getting started first (https://docs.docker.com/docker-for-windows/, https://docs.docker.com/docker-for-mac/)
For building containers, follow the tutorial on docker compose (https://docs.docker.com/compose/gettingstarted/).
Once you understand the principles the Dockerfile reference becomes really useful (https://docs.docker.com/engine/reference/builder/)
Respond to validation request
Proactively validate information
The oracle is an API for all "traditional" functionality. See the architecture for more context.
Functionality examples:
We should decide what technology to use for it. Since we already implemented a lot of this functionality in the current PHP system, is it a good idea to also implement the oracle in PHP as well?
Note: We are not planning on taking this part into production, but it will help with our thinking process and to help form a picture what forus.io will do. Also, it will be the basis for the webshop extensions v2. In the architecture #13 this is the forus.io part under the me app.
Update the mvp wireframes here: https://github.com/teamforus/forus/blob/master/docs/forus.io.md
Based on #5
there is a bug in this dependency that could let attackers crash the application (Denial Of service attack).
Resources:
hapijs/hoek@32ed5c9
https://hackerone.com/reports/310439
Select what to request
Provide necessary personal information (according to fund criteria)
Take steps to get missing information validated
Funding
Confirm request
Receive requested good
Share details
Add products / services to the platform
Provide product / service- Scan requester QR voucher code
Build the v0.1 of the repositories:
We have two options for the MVP. Only the the exchange of value between sponsor and the provider happen on blockchain or all transaction happen on blockchain.
Dan, Jamal and me are liking the first option more; We see multiple pro's for this option for the MVP. I can do a summarization:
only the exchange of value between sponsor and provider
all transaction happen on blockchain
Will update the structure a bit, to separate all elements that left, so we will have a services architecture within the main application as well.
(api.forus.io-ethereum) for https://github.com/teamforus/forus/tree/master/ETH and add it as a submodule to https://github.com/teamforus/forus @maxvisser
Research on the usage of IPFS and closing ports / environment
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.