ballotblock / server Goto Github PK
View Code? Open in Web Editor NEWHyperledger backend
Hyperledger backend
As a developer, I would a UML diagram to document show the object structure of the application
Acceptance criteria:
As a developer I want API for the block chain to ensure easy access
Needs to provide some form of authentication in order to mine blocks.
Needs authentication as well to cast votes.
Needs an endpoint that allows any user to view the block-chain.
As a server I want to be able to authenticate registered users upon log in.
In the the Elections Result tab (Formally "Past Elections") allow the users to the see the results of the elections they partipated/create in that have also been completed and closed
As a developer, I want the votes to be stored on a block chain to ensure that they are immutable once added.
As a developer I want an API draft to plan what functionalities we need to expose
Acceptance criteria:
As a developer, I want all votes to be encrypted using a set of user keys so that the client can remain anonymous.
As as user I want to be able to utilize the search bar to filter elections in real time as I type so that I can find elections to participate in easier.
Note : The place to start doing is most likely on the electionList component and put an onChange listener on the DOM element.
Election that have not started should appear only in the Upcoming Election Tab, Elections that have ended should only show up in the Election Result Tab. Stated but not Ended Election show up only in Current Elections.
As a developer, I want the ability to communicate with the server using a restful API:
I've started working on a mock RESTFul API using CherryPy to facilitate communication between the client and the server.
We need to agree upon a standardized API so that the frontend and backend of the application can be developed independently of each other. To inspire ideas here is a list of basic functionality we need:
etc. Post in this thread if you have more ideas.
As a Voter, on Upcoming Election view add a clock that show sthe user when and the election will begin. On the Current Election View add a clock that show the time remaining to submit votes.
As a developer I would like a database that can be accessed on the serverside so that I can store and verify information.
As a developer I want a unit test (integration test) that demonstrates everything the user would be able to do using the front end UI .
Below is the tasks that should be done:
- 1 .Send request to server to create an election with user_a
- 2 .user_b joins the election, receives a set of public private keys
- 3 .user_b downloads a ballot schema for this particular election
- 4 .user_b fills out the ballot schema with their voting choices
- 5 .user_b casts their ballot cementing it in the voting ledger / db
- 6. user_b redownloads the blockchain / db and manually verifies that their
encrypted ballot was included.
As a user I want a loading indicator to be extended to all tabs
Acceptance Criteria :
As a user I want my created elections on the front end forwarded to the API server so that voters can vote in them
Acceptance Criteria :
As a user I want the option to manage a private key that I used to sign my vote.
Acceptance Criteria :
As a developer I want all blockchain functionalities through as self-defined transaction
Functions for the following items
As a developer I want to store my votes on a distributed ledger to ensure immutability.
As a developer, I would like the user interface on the front end to have functionalities behind the components so that users can interact with the system.
Note : As more front end components are added, more items will need to be integrated. This is just the initial set of functionalities that are being tied into the front end.
As a voter I want to be able to do all of the following using the front end web application.
Acceptance Criteria:
Some context: Number 3 is essentially finished, 1,2,4 and 5 needs to be done. Upon logging in, the system should remember that the user has logged in and treat it as a session for some time so a user does not have to log in. View the ReactApp improvements issue to view some general usability improvements.
These items are on the front end, the backend BallotBlockAPI need to have the same functionality implemented in order to hook up the front end.
Allow the Election creator to make elections with an arbitrary number of props and choices.
As a developer I would like the hyperledger composer rest server to support authentication so we can limit client access.
Acceptance Criteria:
Note : The tutorial at https://hyperledger.github.io/composer/integrating/enabling-rest-authentication might be particulary helpful.
As a user I would like to be able to the hit the enter key on my key board in lew of hit the the submit button on certain forms
AC:
As a developer I want documentation to for hyperledger composer
Acceptance Criteria:
As a user I want to be able to know where I am located on the site by the URL.
Acceptance Criteria:
The url displays a path that indicates which page you are on
As the developer we want a poster to demonstrate the work done through a poster.
Acceptance Criteria:
Add Functionality to the API server end point 'api/election/POST' to alow for creating new elections on the block chain.
As a developer I would like a SQL database to store user account information outside of the blockchain.
Create a database for account information.
Currently a users information are stored using a SQLlite in memory, in order for it be more reliable and persistence switch the source to a SQL database deployed somewhere.
As a developer I want the API server to validate an access token on a per request basis
Acceptance Criteria:
As a user I would like SSL support so that I can have secure transmissions of data to the server.
We should integrate SSL support so that users can register for accounts and have secure transmissions between their clients and the server without being susceptible to MITM attacks.
Formerly known as the "intermediary server" , rename to Ballot-block API if not yet renamed.
Some context : Use the principles outlined in : https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9 to rename the routes.
As a user I want to stay logged in for a certain amount of time (15 minutes?) after I have logged in with my username and password.
Acceptance Criteria:
Usability improvements to the design on the front end application. The front end should have the following
As a developer I would like election results to be returned from the API server so that they can be forwarded to the front end
Acceptance Criteria:
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.