{"id":19909784,"url":"https://github.com/fintank/prism-angular-truffle-ethereum-ipfs","last_synced_at":"2026-04-13T09:31:21.779Z","repository":{"id":87095144,"uuid":"117595653","full_name":"FintanK/prism-angular-truffle-ethereum-ipfs","owner":"FintanK","description":":zap: A proof of concept decentralized app built with Ethereum, Angular.js, Truffle, Solidity and IPFS. Created by Fintan Kearney. MIT License.","archived":false,"fork":false,"pushed_at":"2019-07-25T01:27:57.000Z","size":2798,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T08:26:02.264Z","etag":null,"topics":["angular","ethereum","ethereum-blockchain","ethereum-dapp","ipfs","ipfs-ethereum","truffle"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FintanK.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-15T21:09:01.000Z","updated_at":"2023-03-08T04:04:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"f7288cf7-5c2a-497f-9e4d-2db999bb8543","html_url":"https://github.com/FintanK/prism-angular-truffle-ethereum-ipfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FintanK/prism-angular-truffle-ethereum-ipfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FintanK%2Fprism-angular-truffle-ethereum-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FintanK%2Fprism-angular-truffle-ethereum-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FintanK%2Fprism-angular-truffle-ethereum-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FintanK%2Fprism-angular-truffle-ethereum-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FintanK","download_url":"https://codeload.github.com/FintanK/prism-angular-truffle-ethereum-ipfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FintanK%2Fprism-angular-truffle-ethereum-ipfs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31746291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","ethereum","ethereum-blockchain","ethereum-dapp","ipfs","ipfs-ethereum","truffle"],"created_at":"2024-11-12T21:16:35.905Z","updated_at":"2026-04-13T09:31:21.773Z","avatar_url":"https://github.com/FintanK.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peer - Browser on the Blockchain, Peer to Peer Chat, Email, Unlimited Storage, Password Manager. \n\nhttps://ipfs.io/ipfs/QmQrPfFovKshKSYCy9kzUs3XPu2NpbqrBcM1HoYytASd9k\n\n** This app is not deployed on mainnet yet, use the Ropsten Network **\n\nThis decentralized application uses Angular with the Truffle to build on the Ethereum Blockchain (smart contract management and deployment).\n\nClick the link below for a live version on IPFS (Install an IPFS Node and Metamask chrome extension and choose the Ropsten Test Network)\n\nhttps://ipfs.infura.io/TBD\n\n## Dependencies\n\n### Metamask\n\nYou will need to install the Metamask chrome extension in order to connect to the Ethereum network in your browser.\n\n### IPFS\n\nYou will need to install Go and IPFS to publish to the decentralized web. Instructions here https://gist.github.com/drwasho/ca224cbd4a21440f7cc1245e594398e4\n\n## Installation\n\nIn the root directory\n\n1. `npm install` to install dependent libraries\n1. `truffle compile` to compile your contracts in to the ./build directory.\n2. `truffle migrate` to deploy those contracts to the network. The contracts will be automatically deployed to the development network in `./truffle-config.js`\n3. `ng serve`. Navigate to http://localhost:4200/\n4. Make sure there are no errors in browser console\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.\n\n## Running unit tests for Angular App and for the Solidity Smart Contracts (.sol files)\n\n1. Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n2. Run `truffle test` to run tests associated with your solidity smart contracts. The test folder for this can be found in the `test` directory at the root level of this project\n\n## Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).\nBefore running the tests make sure you are serving the app via `ng serve`.\n\n# Configuration\n\nYou will need an API key from Infura (provides Ehtereum and IPFS Nodes for your app). https://infura.io/\n\nWhen you get your copy put it in ./truffle-config.js\n\nYou will also need your seed words in order to deploy contracts using your private keys. Just use the ones from your Metamask browser extension.\n\n## Deploying your contracts to the Test and Live Networks\n\nConfiguration - ./truffle-config.js\n\nhttp://truffleframework.com/tutorials/deploying-to-the-live-network - A guide to deploying contracts with Truffle.\nhttp://truffleframework.com/tutorials/using-infura-custom-provider - Using a custom provider (In our case Infura).\n\nTake a look at truffle-config.js - this contains all of the different configurations for each network. \n\nI decided to use Infura so that I don't have to run an Ethereum node locally.\n\nYou will need to top up your Ethereum wallet with coins for the test network you choose to use in Metamask. There is a faucet for issuing test coins https://faucet.metamask.io/\n\n```$xslt\ntruffle migrate --network ropsten\ntruffle migrate --network kovan\ntruffle migrate --network rinkeby\n\nand of course the live ethereum network: WARNING uses real coins.\n\ntruffle migrate --network mainnet\n```\n\nReminder: None of these will work without your Metamask seeds and Infura API key set up in truffle-config.js\n\n## Publishing to IPFS\n\nYou will need to IPFS command line tool installed. In the root directory run the following command..\n\n```$xslt\nipfs add -r dist\nipfs name publish \u003chash-generated-from-previous-command\u003e\nipfs name resolve \u003chash-generated-from-previous-command\u003e\n```\n\nIn the example above you can see that a hash is generated. You will be able to use this hash to find your app on the distributed network.\n\nJust visit https://ipfs.io/ipfs/\u003cyour-generated-hash\u003e\n\n## Ethereum Development Notes\n\n### Web3.js Useful API\n\n#### LevelDB Database\n\nThere is a LevelDB database which can be used to store data offline. It uses a simple key-value store\n\n```$xslt\nweb3.db.putString('testDB', 'key', 'myString') // true\n```\n\n#### Whisper\n\nhttps://github.com/ethereum/wiki/wiki/Whisper - Whisper Wiki\nhttps://www.youtube.com/watch?v=koZizelOUeI - Whisper: Achieving Darkness Presentation at DevCon\n\nIn short, Whisper is a peer to peer protocol for sending messages over the ethereum network anonymously and without censorship.\n\n#### Swarm\n\nhttp://swarm-guide.readthedocs.io/en/latest/introduction.html - Introduction to Ethereum Swarm\n\n#### Solidity\n\nSolidity is the language for writing smart contracts that get executed on the EVM (Ethereum Virtual Machine).\n\nhttps://manojpramesh.github.io/solidity-cheatsheet/ - A handy cheat sheet\n\n#### ENS (Ethereum Name System)\n\nhttps://ens.readthedocs.io/en/latest/ - Ethereum Name System Documentation. Like DNS but for Ethereum.\n\n## Resources / Documentation / Code Repositories\n\nhttps://github.com/LedgerHQ/ledger-wallet-api - Ledger Wallet JS API (Appears to be BTC only, can use Ledger Nano to send and receive funds, access account balances etc)\nhttp://truffleframework.com/tutorials/using-infura-custom-provider - Using Infura with Truffle\nhttps://github.com/raineorshine/solgraph - Check for security vulnerabilities within your smart contracts.\nhttps://github.com/diasdavid/ipscend - Publish your static content to IPFS easily.\n\n## IPFS Public Nodes\n\nhttps://ipfs.io\nhttps://ipfs.infura.io \n\n## Donate\n\n0x7f2cf947a62521dc6cb2fa73cc10c54109e78add - Ether\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintank%2Fprism-angular-truffle-ethereum-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffintank%2Fprism-angular-truffle-ethereum-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintank%2Fprism-angular-truffle-ethereum-ipfs/lists"}