Skip to content

Commit 55913c7

Browse files
committed
general doc
1 parent 8ea8123 commit 55913c7

File tree

3 files changed

+114
-57
lines changed

3 files changed

+114
-57
lines changed

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024 Improve-in
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

PRIVACY.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Privacy Policy for Personal CryptoFolio
2+
This privacy policy governs your use of the software application Personal CryptoFolio ("Application") for mobile devices that was created by Improve-in. The Application is a personal portfolio tracker for crypto assets.
3+
4+
## Information obtained by the Application
5+
6+
### User Provided Information
7+
All the information provided by the user is stored in the device and no information is sent to our servers.
8+
9+
The only user-entered information that leaves the device is the assets identifiers for which you want to fetch the price for. Such information is sent to different price providers like exchanges.
10+
11+
### Automatically Collected Information
12+
The application does not collect information automatically.
13+
14+
### Third parties access to information obtained by the Application
15+
The only information that leaves the device is the assets identifiers for which you want to fetch the price for. Such information is sent to different price providers like exchanges using their APIs.
16+
17+
## Data Retention Policy, Managing Your Information
18+
We will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. We will retain Automatically Collected information for up to 24 months and thereafter may store it in aggregate. If you'd like us to delete User Provided Data that you have provided via the Application, please contact us at [email protected] and we will respond in a reasonable time. Please note that some or all of the User Provided Data may be required in order for the Application to function properly.
19+
20+
21+
## Changes
22+
This Privacy Policy may be updated from time to time for any reason. We will notify you of any changes to our Privacy Policy by posting the new Privacy Policy here. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
23+
24+
# Your Consent
25+
By using the Application, you are consenting to the application processing of your information as set forth in this Privacy Policy now and as amended by us. Processing, means using or touching information in any way, including, but not limited to, collecting, storing, deleting, using and combining information.
26+
27+
# Contact us
28+
If you have any questions regarding privacy while using the Application, or have questions about our practices, please contact us via email at [email protected]

README.md

Lines changed: 65 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,87 @@
1-
This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
1+
# Personal CryptoFolio
22

3-
# Getting Started
3+
![Personal CryptoFolio logo](https://github.com/improvein/personal-cryptofolio/blob/master/src/assets/images/main_logo.png)
44

5-
>**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding.
5+
Personal Portfolio for crypto assets.
66

7-
## Step 1: Start the Metro Server
7+
This mobile app allows you to track your portfolio registering all the transactions for each asset you have. It is very similar to many others that exists in the market, but with focus on privacy and data availability.
88

9-
First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
9+
We think it's worth having a portfolio manager that allows you to keep your information isolated and private from anyone else.
1010

11-
To start Metro, run the following command from the _root_ of your React Native project:
11+
You can download the app directly from this GitHub repo. You can even get it automated with the <a href="https://obtainium.imranr.dev/">Obtainium</a> app.
1212

13-
```bash
14-
# using npm
15-
npm start
13+
Download and old unmaintained version from the Google Play Store: <a href='https://play.google.com/store/apps/details?id=com.improvein.personalcryptofolio'>old v1.x app</a>
1614

17-
# OR using Yarn
18-
yarn start
19-
```
20-
21-
## Step 2: Start your Application
22-
23-
Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:
15+
## Core principles - where we are different
2416

25-
### For Android
26-
27-
```bash
28-
# using npm
29-
npm run android
30-
31-
# OR using Yarn
32-
yarn android
33-
```
34-
35-
### For iOS
36-
37-
```bash
38-
# using npm
39-
npm run ios
40-
41-
# OR using Yarn
42-
yarn ios
43-
```
17+
* **Data availability**: export and import your data and allow YOU to be the owner of it
18+
* **Privacy**: no 3rd parties involved in the storage of your data
4419

45-
If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly.
20+
## Features
4621

47-
This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
22+
* Track several crypto assets (we will add more)
23+
* Track each asset's transactions by registering your operations (buy or sell)
24+
* See your portfolio valuation and profit/loss
25+
* You can see it at a portfolio level by clicking on the total valuation amount in the main screen
26+
* Or you can see it an asset level in each asset's screen
27+
* Online price retrieval from different sources:
28+
* Binance
29+
* Bitfinex
30+
* Bitstamp
31+
* Bittrex
32+
* Kraken
33+
* Export your entire portfolio in JSON format<br>
34+
_(at the moment only available with the "share" option)_
35+
* Import your entire portfolio in JSON format<br>
36+
_(at the moment only by copy-pasting the JSON content)_
37+
* PIN protection for the app
4838

49-
## Step 3: Modifying your App
39+
## Privacy
40+
Some things to consider regarding your privacy:
5041

51-
Now that you have successfully run the app, let's modify it.
42+
* Your entire portfolio data is stored in your device. Nothing is sent to any server.
43+
* The only contact with the "outside world" is for price retrieval from price sources like exchanges. But in those cases, nothing from your portfolio is revelead except for the coin which you want to fetch the price for.
44+
* The App can be protected with a PIN.
45+
* Data is stored non-encrypted in the device. (see [future features](https://github.com/improvein/personal-cryptofolio/issues)).<br/>
46+
However, the isolation the modern OS provides protects you from other apps trying to access it in most cases.
5247

53-
1. Open `App.tsx` in your text editor of choice and edit some lines.
54-
2. For **Android**: Press the <kbd>R</kbd> key twice or select **"Reload"** from the **Developer Menu** (<kbd>Ctrl</kbd> + <kbd>M</kbd> (on Window and Linux) or <kbd>Cmd ⌘</kbd> + <kbd>M</kbd> (on macOS)) to see your changes!
48+
## Contribute
49+
You are more than welcome to contribute!
5550

56-
For **iOS**: Hit <kbd>Cmd ⌘</kbd> + <kbd>R</kbd> in your iOS Simulator to reload the app and see your changes!
51+
Just [report an issue](https://github.com/improvein/personal-cryptofolio/issues) or [make a pull request](https://github.com/improvein/personal-cryptofolio/pulls), whatever you want.
5752

58-
## Congratulations! :tada:
53+
## Development
54+
This is a React Native application.
5955

60-
You've successfully run and modified your React Native App. :partying_face:
61-
62-
### Now what?
56+
So after cloning the repo make sure you install all the dependencies:
57+
```
58+
npm install
59+
```
6360

64-
- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
65-
- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
61+
Then plug your phone or start an emulator for the OS you want. OS specific instructions below.
6662

67-
# Troubleshooting
63+
### Android
64+
Before starting you need to create the file `android/local.properties` with this:
65+
```
66+
APP_RELEASE_STORE_FILE=/location/to/your/keystore.file
67+
APP_RELEASE_STORE_PASSWORD=your_store_password
68+
APP_RELEASE_KEY_ALIAS=your_key_alias
69+
APP_RELEASE_KEY_PASSWORD=your_key_password
70+
```
71+
(if you have any doubt as for the use of these parameters, check the [android/app/build.grade](https://github.com/improvein/personal-cryptofolio/blob/master/android/app/build.grade) file)
6872

69-
If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
73+
Then run the project in debug mode in Android:
74+
```
75+
react-native run-android --appIdSuffix "debug"
76+
```
77+
(the suffix thing is because the app is configured to add a "debug" prefix to the package name when running on debug mode. That way it doesn't run into conflics with your production app that might be installed on the device)
7078

71-
# Learn More
79+
### iOS
80+
(@TODO: NEED MORE DETAILS HERE)
7281

73-
To learn more about React Native, take a look at the following resources:
82+
Run the project in iOS:
83+
```
84+
npm run ios
85+
```
7486

75-
- [React Native Website](https://reactnative.dev) - learn more about React Native.
76-
- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
77-
- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
78-
- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
79-
- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
87+
For more information about how to develop and build using React Native: https://facebook.github.io/react-native/

0 commit comments

Comments
 (0)