-
-
Notifications
You must be signed in to change notification settings - Fork 10
/
CONTRIBUTING.txt
65 lines (23 loc) · 5.32 KB
/
CONTRIBUTING.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
=========================
ETHOS OF THIS PROJECT:
=========================
• This app is ment to serve the cryptocurrency community as a simple / easy-to-use, optimized, and PRIVATE / ALWAYS 100% FREE and open source cryptocurrency portfolio ticker.
• This app can run 24/7 (with very little elecricity usage costs) on a raspberry pi OS installation on a user's internal / home network, displaying real-time crypto price and trade volume of multiple assets, any time of the day or night...even on a raspberry pi zero ($10 chipset / $30 kit) from what users have told me (NOT tested myself on that slow of a raspi YET). This app runs as a local index.html file opened by a web browser (firefox by default with the auto-installer), allowing for easy installation by less technically-advanced users who don't know how to use the command-line auto-installer.
• The command-line auto-installer additionally creates and maintains a 'cache' sudirectory, and adds support for more advanced exchange APIs (like kucoin, which requires a POST method auth / re-auth, which cannot be done in client-side browser javascript). The auto-installer also adds the ability to auto-start the ticker upon user-login to the LXDE desktop interface that comes standard / default on Raspberry Pi OS, and a cron job to keep the screensaver off / run the above-mentioned advanced API maintenance tasks.
• The design of this app is minimalistic ON PURPOSE to achieve all the above-mentioned important properties, all while still able to run on low power hardware (raspberry pi / pine64 / etc), which in turn makes this app a feasible choice for end-users of ANY portfolio size large or small.
• By MINIMIZING exposure to user details (in case a user's operating system is ever hacked), security / privacy within this app is actually ENHANCED. In this specific case of attempting to maintain security and privacy of an end-user, the "less is more" approach works best (features / security is always a balance that must be considered in any app, but ESPECIALLY in a cryptocurrency app). ADDITIONALLY, these considerations become EVEN MORE IMPORTANT if an end-user's portfolio grows in value over the years.
• There is no rush here to add features EVER, as this is a "passion project" (NOT for profit). There is also no "paying for a feature". If end-users want to donate twords the project, it must be a "generalized donation" not tied to any specific contract / agreement between the donors and developers. One of the primary pillars as mentioned above is "ALWAYS 100% FREE and open source". This is how the backbone of the ENTIRE underlying internet was built out in the late 1990's and early 2000's. This project is HEAVILY COMMITED to this ideal. Accepting donations must NEVER prioritize development for the few over the many, PERIOD. The goal here is to create / maintain software that ANYBODY can use, redistribute, and modify to their liking (under the GPLv3 license).
===============================================================================================================================================
============================================
CONTRIBUTION GUIDELINES (FOR DEVELOPERS):
============================================
• Please review the above "ETHOS OF THIS PROJECT" section, to see if your planned iterations are in line with this project's main pillars / objectives. Maybe even contact the project lead, to run your ideas by them and get feedback before you start coding.
• Please consider using "snake case" when creating variables / classes / etc, to match the coding style of the app. This helps a lot during code reviews to find bugs and security issues in more complex code, by making the code easier to read through.
• Please consider using spaces instead of tab spacing when nesting / indenting. This makes it easier when refactoring code, if we need more nested indentation to read code cleaner for code reviews.
• Please optimize your logic after fleshing it out, and make sure everything works as intended AND reads clean during code reviews. Other contributors should not need to 'fix' much in your code contributions, as this defeats the purpose of having multiple contributors. There is no rush here, this is free software. You can take all the time you need and get it right.
• Please make sure you use decent semantics for your variable / class names etc. This goes a VERY long way twords making code readable during code reviews.
• Please add enough comments to your code to clarify what's going on, especially for moderate to heavy logic. Just like good semantic naming, this ALSO goes a VERY long way twords making code readable during code reviews.
• Be liberal with spacing and new lines in your logic. This ALSO goes a VERY long way twords making code readable during code reviews.
• ALL code you include in your contribution MUST BE COMPATIBLE WITH THE GPLv3 LICENSE that this app is released under. If you include any code licensed by somebody other than yourself, please leave attribution for them in your contribution, and include the license they released their code under.
• Thank you in advance for any considerations by you twords contributing to this app's codebase. It's much appreciated! :)
===============================================================================================================================================