Prospectus - aaronkopplin/Metallic-React-Native GitHub Wiki
Team Description
Summary of Technical Strengths
Aaron K: Aaron is a senior Computer science student. He has experience as a developer intern at Universal Forest Products, working with .NET technologies. Aarons technical interests primarily involve blockchain and distributed systems. Aaron loves to work in python and write desktop and mobile applications.
Brad S: Brad is a computer science major. He is pursuing opportunities for software development and engineering after graduation. He has experience working in multiple different developer environments as well as text editors. Despite not having had an internship, he has gained some experience working with mobile applications through Android Studio during his course of study. He is proficient in C,C++, and Java.
Josh H: Josh is a computer science major. Post graduation, he is pursuing software development opportunities with a primary focus on mobile development. Through coursework he has gained experience and become proficient in Java and Swift along with a working knowledge in C, C++, and python.
Myren M: Myren is a computer science major and history minor. They are pursuing a graduate program in information science and looking to combine their interests in history and data through digital preservation. They have experience in web development as an intern at Dominion Systems and are proficient in python, C++, and Java.
Anticipation of Growth Areas
Aaron K: Aaron has never worked in mobile application development. However, he does have history in desktop applications which he will be drawing from during the development of the Metallic app. Aaron also hopes to learn more about coordinating development efforts on a team in a short time frame. He also has some experience in Solidity, the programming language of the Ethereum blockchain, but he intends to refine his skills in this area to make more efficient smart contracts.
Brad S: Starting out, Brad has limited knowledge relating to cryptocurrency and blockchain. Researching and familiarizing himself with them will be pivotal in his ability to contribute to the team. Despite having experience with Android Studio there is a lot of room for improvement. Along with cryptocurrency, Ethereum adds its own programming language and the idea of smart contracts which are both new for Brad. Learning the benefits of these and how they can be used on this project are sure to be beneficial.
Josh H: Josh is going into this project with basic knowledge in cryptocurrency and is looking to gain a more in depth understanding of how cryptocurrency and blockchain works. He is also hoping to gain more experience with the software development process and to help strengthen his mobile development skills, specifically with Android and web development.
Myren M: Myren has very little experience working with cryptocurrency. They want to understand the fundamentals behind the blockchain and learn Solidity to work more closely with the Ethereum blockchain. They have worked with Android Studio in the past, but they are looking to learn new techniques to speed up development and help the app run more smoothly.
Project Description
Background
Cryptocurrency is a rapidly growing form of digital payment that opens the door for anyone to immediately make a payment to anyone else in the world at nearly no cost. Though cryptocurrency aims to be an open platform, it still has its shortcomings in that getting started in crypto has a daunting, if not overwhelming, learning curve. It remains nearly inaccessible to those without a technical background, or those not willing or unable to invest time into learning a new way of doing commerce. To gain mainstream adoption, cryptocurrency needs platforms that make it simple and enjoyable to use, and prevent the user from getting sidetracked or lost in understanding the technical details.
Metallic is an intuitive payment platform, powered by smart contracts on the ethereum blockchain that allows users to easily make cryptocurrency payments to their friends based on their Metallic @usernames, rather than long and unwieldy cryptocurrency addresses. Metallic hides the technical details of making cryptocurrency payments, and offers a smooth platform where users can find their friends profiles, and start sending, receiving or requesting payments in seconds - without having to learn how to manage a cryptocurrency wallet, or understand how cryptocurrency payments work under the hood.
Description of Intended Features/Backlog
- Decentralized username registration
- Make and request payments
- Public names associated with an account, like "Bob Smith"
- Notifications
- Wallet files hosted on host device
- Contacts/friends list
- Payment history feed
- Profile pictures
- Payments memo's
- Account profile page
- Account balance information, both Eth and USD
- Account score - number of transactions from this account
Anticipated Platform/Tooling
- Android Studio application for creating native android application
- Web3 for reading and writing to Ethereum block chain
- Google's android API for Java mobile app development.
- Ethereum's solidity API for use of smart contracts
Relevant Ethical Principles
1.01. Accept full responsibility for their own work.
1.03. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.
3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose.
3.03. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.
3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
3.13. Be careful to use only accurate data derived by ethical and lawful means, and use it only in ways properly authorized.
3.14. Maintain the integrity of data, being sensitive to outdated or flawed occurrences.
4.04. Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices.
6.06. Obey all laws governing their work, unless, in exceptional circumstances, such compliance is inconsistent with the public interest.
6.07. Be accurate in stating the characteristics of software on which they work, avoiding not only false claims but also claims that might reasonably be supposed to be speculative, vacuous, deceptive, misleading, or doubtful.
6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.
7.03. Credit fully the work of others and refrain from taking undue credit.
7.04. Review the work of others in an objective, candid, and properly-documented way.
8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance and testing of software and related documents, together with the management of the development process.
8.05. Improve their knowledge of relevant standards and the law governing the software and related documents on which they work.