Frame Wallet was a project developed by Rafael Pena. With the purpose of portfolio, the application is a creation of a cryptocurrency platform where we simulate purchase and sale transactions, investment capital, analysis of invested capital according to the chosen currency, among other functions such as profile management (account creation, editing account data, password recovery, email, etc).
The project was created using the React and React Native framework using Typescript and the Firebase backend with Cloud Functions.
For the application to work, it is necessary to add two configuration files:
- (google-services.json)
- (.firebaserc)
The files were excluded from the project because they have specific information. Google.services.json can be purchased by creating your android or IOS application in your firebase project. In the firebase documentation there are all instructions on how to add the file. The .firebaserc is an automatically generated file when executing the Firebase Cloud Functions system startup command
All dependencies are listed in package.json but we will make a list:
- "@ant-design/icons": "^4.2.2",
- "@testing-library/jest-dom": "^4.2.4",
- "@testing-library/react": "^9.3.2",
- "@testing-library/user-event": "^7.1.2",
- "@types/react-router-dom": "^5.1.5",
- "antd": "^4.6.1",
- "axios": "^0.20.0",
- "firebase": "^7.20.0",
- "node-sass": "^4.14.1",
- "react": "^16.13.1",
- "react-dom": "^16.13.1",
- "react-icons": "^3.11.0",
- "react-router-dom": "^5.2.0",
- "react-scripts": "3.4.3"
- "@types/jest": "^24.0.0",
- "@types/node": "^12.0.0",
- "@types/react": "^16.9.0",
- "@types/react-dom": "^16.9.0",
- "@typescript-eslint/eslint-plugin": "^3.10.1",
- "@typescript-eslint/parser": "^3.10.1",
- "eslint": "^6.8.0",
- "eslint-config-airbnb": "^18.1.0",
- "eslint-config-prettier": "^6.10.1",
- "eslint-plugin-import": "^2.20.2",
- "eslint-plugin-jsx-a11y": "^6.2.3",
- "eslint-plugin-prettier": "^3.1.2",
- "eslint-plugin-react": "^7.19.0",
- "eslint-plugin-react-hooks": "^3.0.0",
- "prettier": "^2.1.1",
- "typescript": "~3.7.2"
- "@react-native-community/art": "^1.2.0",
- "@react-native-community/async-storage": "^1.12.1",
- "@react-native-community/masked-view": "^0.1.10",
- "@react-native-community/picker": "^1.8.1",
- "@react-native-firebase/app": "^8.4.5",
- "@react-native-firebase/auth": "^9.3.1",
- "@react-native-firebase/firestore": "^7.8.7",
- "@react-navigation/bottom-tabs": "^5.9.2",
- "@react-navigation/native": "^5.7.5",
- "@react-navigation/stack": "^5.9.2",
- "axios": "^0.20.0",
- "firebase": "^7.22.1",
- "react": "16.13.1",
- "react-native": "0.63.2",
- "react-native-chart-kit": "^6.6.1",
- "react-native-gesture-handler": "^1.8.0",
- "react-native-linear-gradient": "^2.5.6",
- "react-native-progress": "^4.1.2",
- "react-native-reanimated": "^1.13.1",
- "react-native-safe-area-context": "^3.1.8",
- "react-native-screens": "^2.11.0",
- "react-native-svg": "^12.1.0",
- "react-native-swiper": "^1.6.0",
- "react-native-vector-icons": "^7.1.0",
- "react-test-renderer": "16.13.1"
- "@babel/core": "^7.8.4",
- "@babel/runtime": "^7.8.4",
- "@react-native-community/eslint-config": "^1.1.0",
- "@types/jest": "^25.2.3",
- "@types/react-native": "^0.63.2",
- "@types/react-native-vector-icons": "^6.4.6",
- "@typescript-eslint/eslint-plugin": "^3.10.1",
- "@typescript-eslint/parser": "^3.10.1",
- "babel-jest": "^25.1.0",
- "eslint": "^6.3.0",
- "eslint-config-airbnb": "^18.1.0",
- "eslint-config-prettier": "^6.10.1",
- "eslint-plugin-import": "^2.20.2",
- "eslint-plugin-jsx-a11y": "^6.2.3",
- "eslint-plugin-prettier": "^3.1.2",
- "eslint-plugin-react": "^7.19.0",
- "eslint-plugin-react-hooks": "^3.0.0",
- "jest": "^25.1.0",
- "metro-react-native-babel-preset": "^0.59.0",
- "prettier": "^2.1.1",
- "typescript": "^3.8.3"