Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submission Bit_wizard #5

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Bit_wizard/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files

# dependencies
node_modules/

# Expo
.expo/
dist/
web-build/

# Native
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision

# Metro
.metro-health-check*

# debug
npm-debug.*
yarn-debug.*
yarn-error.*

# macOS
.DS_Store
*.pem

# local env files
.env*.local

# typescript
*.tsbuildinfo
64 changes: 64 additions & 0 deletions Bit_wizard/App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import LoginScreen from './screens/LoginScreen'; // Make sure the path is correct
import PaymentSuccess from './screens/PaymentSuccess';
import RegisterScreen from './screens/RegisterScreen';
import HomeScreen from './screens/HomeScreen';
import PaymentScreen from './screens/PaymentScreen';
import InformationScreen from './screens/InformationScreen';
import LoansScreen from './screens/LoanScreen';
import ViewPoliciesScreen from './screens/PolicyScreen';
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import enTranslation from './translations/en.json';
import hiTranslation from './translations/hi.json';
import 'intl-pluralrules';
import 'intl';
import 'intl/locale-data/jsonp/en';
import 'intl/locale-data/jsonp/hi';
import 'intl-messageformat';
import OtpScreen from './screens/OtpScreen';
import StartScreen from './screens/StartScreen';
import PaymentSetUp from './screens/PaymentSetUp';
import BankSetUp from './screens/BankSetUp';
import LoanApplySuccess from './screens/LoanApplySuccess';


i18n.use(initReactI18next).init({
lng: 'en', // Default language
fallbackLng: 'en',
resources: {
en: { common: enTranslation },
hi: { common: hiTranslation }
}
});

const Stack = createStackNavigator();

const App = () => {
return (
<NavigationContainer>

<Stack.Navigator initialRouteName="Ease-Pay">
<Stack.Screen name="Login" component={LoginScreen} />
<Stack.Screen name="Ease-Pay" component={StartScreen} />
<Stack.Screen name="Register" component={RegisterScreen} />
<Stack.Screen name="OTP" component={OtpScreen} />
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Payment" component={PaymentScreen} />
<Stack.Screen name="Transactions" component={InformationScreen} />
<Stack.Screen name="Loans" component={LoansScreen} />
<Stack.Screen name="Policies" component={ViewPoliciesScreen} />
<Stack.Screen name="PaymentSuccess" component={PaymentSuccess} />
<Stack.Screen name="PaymentSetUp" component={PaymentSetUp} />
<Stack.Screen name="LoanApplySuccess" component={LoanApplySuccess} />
<Stack.Screen name="BankSetUp" component={BankSetUp} />


</Stack.Navigator>
</NavigationContainer>
);
};

export default App;
117 changes: 117 additions & 0 deletions Bit_wizard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# National-Agrifunds-Hackathon

#### Team Name - Bit_wizard

#### Problem Statement - Financial Inclusion in Remote Areas: Digital Financial Services for Unconnected Regions

#### Team Leader Email - [email protected]

## A Brief of the Prototype:
![Diagram](https://github.com/vibodhbhosure/National-Agrifunds-Hackathon/assets/52785828/40a8a621-57c6-473e-b4d3-ca71bbd35700)

Step 1: Registration
1. Begin by opening the Ease Pay app on your mobile device.
2. On first use, the app prompts you to register. This step requires an initial internet connection.
3. Fill in all the necessary details to create your account. This includes personal information and setting up a secure PIN.
4. Your information is securely stored on the server, ensuring data privacy.

Step 2: User Login
1. Subsequent logins are quick and seamless. Open the app and enter your registered mobile number.
2. Authenticate yourself using the PIN you set during registration.
3. This one-time login process ensures that your account remains secure while providing easy access.

Step 3: Seamless Transactions
1. To make a payment, tap on the "Payments" tab within the app.
2. If you haven't registered for payments, the app guides you through a quick process to link your account with the National Payments Corporation of India (NPCI).
3. Once registered, you're ready to transact effortlessly.

Step 4: Effortless Payments
1. Enter the recipient's mobile number and the amount you want to send.
2. Input your secure PIN to authenticate the transaction.
3. Before sending the transaction message, the app combines and encrypts it using your private key, ensuring data security.

Step 5: Secure Communication
1. The encrypted message is sent to the server via SMS, even in areas with weak or no internet connectivity.
2. If you're in an area without network coverage, the app intelligently queues the SMS and sends it when you're back in range.

Step 6: Reliable Processing
1. Upon receiving the encrypted SMS, the server decrypts it securely.
2. The transaction is authorized with your linked bank account through NPCI.
3. The server responds promptly, and an SMS is sent to your app with the transaction status.

Step 7: Zero Connectivity Solution
1. In areas with zero connectivity, the app leverages locally stored data to create a temporary wallet.
2. Transactions can be conducted using Bluetooth or a Wi-Fi hotspot, similar to the Google Tez concept.

Step 8: Microloans and Advisory Services
1. Ease Pay goes beyond transactions. It offers microloan services to provide financial assistance when needed.
2. Personalized advisory services are available to guide users in making informed financial decisions.

Step 9: Empowering Financial Inclusion
1. Ease Pay is built on React Native, powered by DynamoDB, and integrates AWS Lambda and AWS API Gateway.
2. With UPI infrastructure as its foundation, Ease Pay empowers rural communities, connecting them to modern financial services.

Step 10: Conclusion and Empowerment
1. The Ease Pay prototype is a testament to innovation meeting accessibility, bridging the gap between technology and financial empowerment.
2. It's a glimpse into the future of inclusive banking, where transactions are effortless, boundaries are transcended, and financial independence becomes a reality.

## Tech Stack:

1. React Native
2. Node.js
3. AWS Lambda
4. AWS API Gateway
5. DynamoDB

## Step-by-Step Code Execution Instructions:

#### Pre-requisite

- Node.js
- Git
- Laptop/Desktop and Mobile connected to same Wi-fi network.
- Download Expo App from Google Play Store. [Expo App](# National-Agrifunds-Hackathon

#### Team Name - Bit_wizard

#### Problem Statement - Financial Inclusion in Remote Areas: Digital Financial Services for Unconnected Regions

#### Team Leader Email - [email protected]

## A Brief of the Prototype:

## Tech Stack:

1. React Native
2. Node.js
3. AWS Lambda
4. AWS API Gateway
5. DynamoDB

## Step-by-Step Code Execution Instructions:

#### Pre-requisite

- Node.js
- Git
- Laptop/Desktop and Mobile connected to same wifi network.
- Download Expo App from Google Play Store.

[Expo App - Required to execute app on mobile](https://play.google.com/store/apps/details?id=host.exp.exponent&hl=en&gl=US)

#### Code Execution Instructions

1. Clone the git repository
2. Open the cmd in the folder
3. Run "npm i".
4. Run "npm start"
5. Open the Expo App and click on Scan QR
6. The app will open on your mobile.
(Make sure you are connected to same network as your PC)
All the input instructions in the App are made as adhoc, since, the backend is not yet connected with the application.
On Login the OTP is "123456".
Ignore warnings, if any, since the build is not 100% complete.

## What I Learned:

The biggest learning we developed as a team was to keep into consideration the ease of handling and operation of the mobile application. The execution of the transactions and the services in a very cost effective manner. Solving problems such as multi-lingual support, few-click operations, security and much more.
30 changes: 30 additions & 0 deletions Bit_wizard/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"expo": {
"name": "bankproject",
"slug": "bankproject",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}
Binary file added Bit_wizard/assets/adaptive-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Bit_wizard/assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Bit_wizard/assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Bit_wizard/assets/splash.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions Bit_wizard/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
Loading