Skip to content

code-n-tell/android-mobile-banking-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

119 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ChatGPT Image Oct 28, 2025, 10_16_47 AM

🧭 About

Zentra is an Android mobile banking app for security practitioners who seeks to understand how a mobile app works, experiment with features, and safely test security concepts in a realistic environment.

✨ Features

As a user,

  • I want to set up a new account so that I can start using the app's services
  • I want to sign in to my account so that I can securely access my personal information and features
  • I want to sign out of my account so that I can ensure my information is protected when I'm not using the app
  • I want to transfer funds to other accounts so that I can send money to others
  • I want to transfer funds using PayNow so that I can make quick and easy payments using just a mobile number or NRIC
  • I want to receive push notifications so that I stay informed about important updates in my account
  • I want to view web content within the app so that I don't have to switch to an external browser
  • I want to send real-time messages to customer support so that I can get immediate help with my issues

πŸ› οΈ Tech Stack

⚑ Quick Start

  1. Download and install the APK from the [latest release] on your device
  2. Allow necessary permissions on your device
  3. Open the app and start playing immediately

πŸ‘©β€πŸ’» Developer Setup

πŸ“¦ Prerequisites

Before running Zentra app, make sure you have the following:

Tool Why You Need It How to Install / Download How to Verify
Node.js & npm Node.js runs JavaScript on your machine, and npm manages project dependencies. Download from https://nodejs.org (v18 or later recommended) node -v and npm -v should show version numbers
Git Used to clone the repo, track changes, and contribute. Download from https://git-scm.com and follow installer instructions git --version should show a version number
Expo CLI Simplifies running and managing React Native apps. Run npm install -g expo-cli after Node.js is installed expo --version should show a version number
Java JDK Required for Android builds. Download from https://www.oracle.com/java/technologies/javase-jdk17-downloads.html and set JAVA_HOME environment variable java -version should show a version number
Android SDK Required to build Android apps locally. Install via Android Studio and set ANDROID_HOME environment variable adb --version should show a version number
Expo Go App Lets you run the app on a physical device without building a full APK/IPA. Download from Google Play or App Store Open the app on your phone; it should launch successfully

πŸš€ Getting Started

Step 1

First, clone the repository to your local machine using git clone https://github.com/your-username/your-repo-name.git and navigate into the project folder with cd your-repo-name. You may optionally shorten the folder name to zentra using mv your-repo-name zentra and continue working inside the renamed folder.

git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name

Step 2

Next, install all necessary Node.js dependencies by running npm install in the root directory. This ensures all required packages for the project are available.

npm install

Step 3

To prepare the Android build, navigate to the android folder and run ./gradlew clean. This clears any previous build artifacts, helping to prevent build errors caused by old files. After cleaning, return to the root folder.

cd android
gradlew clean

Step 4

You must then set up environment variables by creating a .env file in the root directory. Include any required keys, such as the Supabase URL and key. These variables are essential for connecting the app to backend services. Please approach the team if you require them.

Step 5

Before running the app, connect a physical device with USB debugging enabled. This allows your computer to install and run the app directly on the device.

Step 6

Finally, start the development server with npx expo run:android. Expo will build the app and install it on your connected device, while also opening the Expo Developer Tools in your browser. Once complete, you should see the app running on your device. Any changes you make to the code will reload automatically, making development smooth and interactive.

Alternatively, if you want to build the app and run it on an Android emulator instead of a physical device, start by installing Android Studio. During installation, make sure that the Android SDK, AVD Manager, and HAXM options are checked. Once installed, open Android Studio, go to More Actions β†’ Virtual Device Manager, and create a new Android Virtual Device (for example, a Pixel 5 or similar, API 33 or higher is recommended). Click the play ▢️ button to start the emulator. With the emulator running, you can then run npx expo run:android in your terminal to build and launch the app on the virtual device.

npx expo run:android

πŸ”„ Common Commands

  • Start Expo project with cleared cache: npx expo start -c
  • Start Expo project: expo start
  • Run on Android Emulator: expo start --android
  • Run on iOS Simulator (Mac only): expo start --ios
  • Build Android APK (optional): npx expo build:android
  • Build iOS app (Mac + Apple Developer account): npx expo build:ios
  • Create an apk: npx expo run:android --variant release

❓ Troubleshooting

  • Expo Go stuck or blank screen? β†’ Close and restart Expo Go, clear cache: expo start -c
  • Android Emulator not detected? β†’ Make sure it's started via Android Studio before running expo start --android.
  • Dependencies missing or breaking? β†’ Try deleting node_modules and package-lock.json or yarn.lock, then reinstall:
rm -rf node_modules
rm package-lock.json # or yarn.lock
npm install

🀝 Contributing

Contributions are welcome and appreciated! If you wish to improve this project:

  • Fork the repo
  • Create a feature branch
  • Commit your Changes
  • Push to your Branch
  • Open a Pull Request

πŸ“„ License

This project is released under the MIT License, which means you are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, as long as you include the original copyright notice. The software is provided β€œas is,” without warranty of any kind, either express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, or non-infringement. For full details, please refer to the License.

πŸ™ Acknowledgements

  • Cybersecurity software engineer, Nicholas Tok
  • Cybersecurity software engineer, Ahmad Syuaib
  • Product delivery manager, Gerald Lau

About

Zentra is an Android mobile banking app for security practitioners who seeks to understand how a mobile app works, experiment with features, and safely test security concepts in a realistic environment.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors