-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
171 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
logo_maskable-icon.png,1725030732625,10d23dc1083785f1bb23e650ec8dcd0d9f6463fa756585b128d0b2ad27b1effc | ||
index.html,1726237917536,ca3fc7a2d67ae62e272cd68bac2cadc53b122eb7526f52dbe2a0e2797f45dbcd | ||
assets/Verification-D8CoHclr.js,1726237917365,e45a204a723db6e9d4bfccb2ecea12575fa1bd9139fe36a21326a31c4a901985 | ||
assets/TableRow-DEUE_Tf6.js,1726237917396,baf152de8571e93204afb2ebb85a0d085eb475400ec267bb98ad2772fcf67b97 | ||
assets/Setting-nmBW9m9j.js,1726237917396,13b3b36363b1f106b445cf8cd0f7ef44fcfc78a783c1eff96f9d065acc2024a3 | ||
assets/Security-DBuFflNP.js,1726237917396,a263fbca19ba0ab97a2e748669208eac48427a1db048ff4c03221857b45382da | ||
assets/Receiver-CGqIVnI6.js,1726237917443,c6566013118aad97dfacc0285519d33b822a2025d29fc71448f4e65dbfdbbf16 | ||
assets/Portfolio-Cbx0xrwO.js,1726237917411,48de80e2e2ef9d8272c171e40b9e4992030ce2443b43cded531ee5164786fe5a | ||
assets/newss-BPrtsdIz.jpeg,1726237917365,12d06351a0723b859b4ce31efdfee4d544d5372282ec94f0b88f50f83b4dae93 | ||
assets/NotificationsOff-_7WTPHG5.js,1726237917411,b24fc572d1517e6670505da6c55e667e1df07ff9f4dd3ff670804a6ca510cefa | ||
assets/news-jNoN3COY.jpeg,1726237917365,127edf84eba2e9a951514d00040502f8bc208ed950b036fc7c1b20876f9103ce | ||
assets/index-BSXT5Esq.js,1726237917411,8f1251d2b0a74497fdbd8e79979566eac2cb970a0edc6de425c57289524030e6 | ||
assets/Converter-BCC67Opq.js,1726237917365,8baf9500b90f67a904d886c062f18ed70677734e0e753ff889ac54b9504a2437 | ||
assets/CardContent-C0LOkHmh.js,1726237917396,653849acbd0dc056b1cc693dbcbab7183e27164e39ffd9e0f2a5156fe85b0d35 | ||
assets/Card-Dm_e_Dzt.js,1726237917396,7cd72ebc26f6f3c7202bfa379d485b431a16a76bbc8828147017501422030b42 | ||
assets/index-COco_BLs.css,1726237917365,2c9fc015fe643bcd528a251085e6e334d6dbe80538d9d91c27b820e2ba8c5927 | ||
assets/Landing-DV4mFfTx.js,1726237917396,50b1098913d033a93de4a2e861acc9c654e6e8d181a0a62bb78b5d37ac71ae78 | ||
assets/apore-banner-D2AVtlJ7.png,1726237916692,417c4fc25034f9ccac404dd13226e5c9d8c5c7996ae27168077254a5cad53476 | ||
assets/Txhistory-I9au6UtP.js,1726237917396,56f629ddaac4998a19eb3021a5bfbdb946dd7a5334c1767c8c642949dc32f6e5 | ||
assets/logo-Z9JJLbAl.png,1726237917365,04be37756fa718cc203cbce3dcc1350b58b192fdf87f4d4762b01c4aed80c7b9 | ||
assets/Dashboard-Iq_n-h7f.js,1726237917474,23fee57b1c4b445ee3abf4b7c660a3d353ebf603497f3a5e2c52a598310ce79b | ||
assets/index-BnDtwSr0.js,1726237917490,1ed6929f4a41db1bc7f3eab53bd5539bed9f0565e7bb35851aab4e529cb911df | ||
assets/Setting-CnkcvIl7.js,1726307856388,ac14ccefc33cc3cd367ed350797387faffd983307493707b0f23cb0d573631d1 | ||
assets/Verification-CrDn482X.js,1726307856346,f486703a377dfc081bbb3aa0339b0220791e187a6fc3e0d0c657485fb96782ec | ||
assets/Security-CRB-OOX7.js,1726307856346,199170609e6dc58d3ef09750ab651bc8fc639fcc9240f8f6456122cbf97ea461 | ||
index.html,1726308121558,0c3f841005283ff03ac1db76026f5d1011cbdd4747a0e54972eb3e4e4f9e4105 | ||
assets/TableRow-DGKomJK7.js,1726307856346,115f4d72d106ad54d5c9a33a64281012e77309eadae25d24a5652bb7552698b3 | ||
assets/Portfolio-B6tV46q8.js,1726307856346,5629d3e85184ebe1336d324f81f18b9881c4388a0bf3ea849ef48dd75a7fa684 | ||
assets/Receiver-Bpl0h1ix.js,1726307856346,f8a181bc8132dceda17b1fb9fdb937788776eb2e85693fa0828adaad4f032010 | ||
assets/news-jNoN3COY.jpeg,1726307856346,127edf84eba2e9a951514d00040502f8bc208ed950b036fc7c1b20876f9103ce | ||
assets/newss-BPrtsdIz.jpeg,1726307856346,12d06351a0723b859b4ce31efdfee4d544d5372282ec94f0b88f50f83b4dae93 | ||
assets/index-D2IZpLpO.js,1726307856346,5a3d2e96e1e45fb54878d09408df6337c6340d94ae53c0fa09902d66b2e86c1c | ||
assets/Converter-Dnhioh7d.js,1726307856346,41c88959d715e60a2ed8a36c20898c375d82efd5d7b22d689f9b011dbafe97d9 | ||
assets/Card-BxXQw8qD.js,1726307856346,b83c80af6862dceac3c8bda4b83d8300c9df2cc626b39315c618c9956eb38de9 | ||
assets/CardContent-BoTlHh_i.js,1726307856346,7da2efd4a2328797ea1efb5f4461b0bdb276674b070295a8db9c88a27f2eff30 | ||
assets/NotificationsOff-BFeYi-13.js,1726307856346,1af06b75ab91fd6b67784b33b5b0a437346aee264d549150f146e54f4b31a1e8 | ||
assets/index-COco_BLs.css,1726307856346,2c9fc015fe643bcd528a251085e6e334d6dbe80538d9d91c27b820e2ba8c5927 | ||
assets/Txhistory-BFlFqaFf.js,1726307856346,32f3ebf08cd2c5bb44a3e0b040f109c506cec0b925d6e00e87d2da5280d979e0 | ||
assets/apore-banner-D2AVtlJ7.png,1726307856346,417c4fc25034f9ccac404dd13226e5c9d8c5c7996ae27168077254a5cad53476 | ||
assets/Landing-tS8hXluO.js,1726307856346,e338cda511d8b2b792c108d758d3a59cacb314f4de9f8acb4acffdabc2289c0d | ||
assets/logo-Z9JJLbAl.png,1726307856239,04be37756fa718cc203cbce3dcc1350b58b192fdf87f4d4762b01c4aed80c7b9 | ||
assets/Dashboard-Bz8-uRAC.js,1726307857221,c9aafe249977847b60468777ecef75e1230a02dafa114f1dbaf792444bfde328 | ||
assets/index-qHidFfuC.js,1726307857445,2925e63ab11f20b6e03b15055f5576eb45e1f216381a7d522ab173255e3e7395 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,100 @@ | ||
# Apore | ||
# Apore Vault - Multi-Currency Wallet | ||
[🌐Live Link](https://apore-vault.web.app) | ||
**Apore Vault** is a secure, multi-currency wallet that simplifies the management of both traditional and digital assets. It offers seamless currency exchanges, easy transfers, and top-notch security features like two-factor authentication (2FA). Designed for efficiency, Apore Vault integrates with two Public Financial Institutions (PFIs) to provide users with a trusted solution for cross-border money transfers, along with ratings to help users select the best option. | ||
|
||
## Key Features | ||
|
||
- **Secure Storage**: State-of-the-art encryption for protecting your digital assets. | ||
- **Multi-Currency Support**: Manage and store a wide range of cryptocurrencies. | ||
- **Currency Exchange**: Easily swap between cryptocurrencies directly within the app. | ||
- **Seamless Transfers**: Send and receive funds quickly, whether across borders or between wallets. | ||
- **Integrated Exchange**: Perform currency swaps without leaving the app, with real-time rates. | ||
- **Two-Factor Authentication (2FA)**: Enhanced security via SMS, email, or authentication apps to verify transactions. | ||
- **Advanced Security**: Includes biometric login and cold storage for added safety. | ||
- **Fiat and Crypto Integration**: Manage both traditional currencies and cryptocurrencies in a single app. | ||
- **User-Friendly Interface**: Simple, intuitive design for users of all experience levels. | ||
|
||
## Liquidity Providers | ||
|
||
Apore Vault integrates with two key Liquidity Providers to facilitate seamless currency exchange and cross-border money transfers. Each Liquidity Provider supports different offerings: | ||
|
||
- **AquaFinance Capital**: | ||
- DID: `did:dht:3fkz5ssfxbriwks3iy5nwys3q5kyx64ettp9wfn1yfekfkiguj1y` | ||
- Offerings: | ||
- GHS to USDC | ||
- NGN to KES | ||
- KES to USD | ||
- USD to KES | ||
|
||
- **Flowback Financial**: | ||
- DID: `did:dht:zkp5gbsqgzn69b3y5dtt5nnpjtdq6sxyukpzo68npsf79bmtb9zy` | ||
- Offerings: | ||
- USD to EUR | ||
- EUR to USD | ||
- USD to GBP | ||
- USD to BTC | ||
|
||
Users can select a Liquidity Provider based on their transaction needs and available offerings, ensuring flexible and efficient transfers. | ||
|
||
## Profitability | ||
|
||
Apore Vault generates profit through **transaction fees** on every transfer and currency exchange. Whether users send money across borders or exchange currencies within the app, a small fee is applied to ensure the sustainability of the platform while keeping fees competitive. | ||
|
||
## Optionality | ||
|
||
Apore Vault integrates with two PFIs and the above-mentioned Liquidity Providers to give users the best cross-border money transfer options. Users are guided by **user ratings** on transaction speed, fees, and overall service quality, ensuring they choose the best provider for their needs. | ||
|
||
## Customer Management | ||
Apore Vault ensures that users' personal information is kept private and secure. | ||
|
||
## Customer Satisfaction | ||
|
||
To maintain a high level of service, Apore Vault tracks **customer satisfaction** with each PFI and Liquidity Provider through post-transaction ratings. After each transfer or currency exchange, users are prompted to rate the provider based on transaction speed, fees, and customer service. These ratings help other users make informed decisions about which provider to use. | ||
|
||
## Security | ||
|
||
- **Two-Factor Authentication (2FA)**: For added security, we require 2FA for all major transactions, ensuring an additional layer of protection. | ||
- **Auto Logout**: To further enhance security, the application automatically logs the user out after 5 seconds of inactivity or no interaction, ensuring sensitive information is not left exposed in case of inactivity. | ||
|
||
|
||
## Why Choose Apore Vault? | ||
|
||
- **Built on TBDEX Protocol**: We harness the power of decentralized exchanges for secure, efficient operations. | ||
- **Seamless Fiat and Crypto Integration**: Manage all your assets—both traditional and digital—in one place. | ||
- **User-Friendly Design**: A clean, intuitive interface that makes managing your finances simple. | ||
- **Advanced Security Features**: With 2FA. | ||
- **Continuous Updates**: We regularly enhance the app to keep up with user feedback and technology trends. | ||
|
||
## Tech Stack | ||
|
||
- **React (TypeScript)** | ||
- **Firebase** | ||
- **tbDex SDK** | ||
- **Material-UI** | ||
- **Ether.js** | ||
- **Styled-Components** | ||
- **@coinbase/wallet-sdk** | ||
- **WalletConnect** | ||
- **Recharts** | ||
|
||
## Installation | ||
|
||
1. Clone the repository: | ||
```bash | ||
git clone https://github.com/jhmeel/apore-vault.git | ||
``` | ||
2. Navigate to the project directory: | ||
```bash | ||
cd apore-vault | ||
``` | ||
3. Install dependencies: | ||
```bash | ||
npm install | ||
``` | ||
4. Run the application: | ||
```bash | ||
npm run dev | ||
``` | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"hosting": { | ||
"public": "dist", | ||
"ignore": [ | ||
"firebase.json", | ||
"**/.*", | ||
"**/node_modules/**" | ||
], | ||
"rewrites": [ | ||
{ | ||
"source": "**", | ||
"destination": "/index.html" | ||
} | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import { initializeApp } from "firebase/app"; | ||
import { getAnalytics } from "firebase/analytics"; | ||
import { getAuth } from "firebase/auth"; | ||
import { getFirestore } from "firebase/firestore"; | ||
import { getStorage } from "firebase/storage"; | ||
|
||
const firebaseConfig = { | ||
apiKey: "AIzaSyAtgLfUsqHeYlHfqITsFOpWUtHV2jr45jc", | ||
authDomain: "apore-vault.firebaseapp.com", | ||
projectId: "apore-vault", | ||
storageBucket: "apore-vault.appspot.com", | ||
messagingSenderId: "612796850763", | ||
appId: "1:612796850763:web:eb0e5c7d5495e2c14123ce", | ||
measurementId: "G-K50MSGGB8N" | ||
}; | ||
|
||
|
||
export const app = initializeApp(firebaseConfig); | ||
export const analytics = getAnalytics(app); | ||
export const auth = getAuth(app); | ||
export const db = getFirestore(app); | ||
export const storage = getStorage(app); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters