Skip to content

tetherto/pearpass-app-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

246 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pearpass logo

pearpass-app-mobile

PearPass Mobile App is a secure and user-friendly password management solution designed for mobile devices. It allows users to store, generate, and manage their passwords across different platforms with strong encryption.

Table of Contents

Features

  • Secure password, identity, and credit card, notes and custom fields storage
  • Biometric authentication (fingerprint and face recognition)
  • Cross-device and platform synchronization
  • Offline access to your credentials
  • Encryption for data security
  • Password strength analysis
  • Random password generator
  • Easy-to-use interface

Installation

Node.js: Ensure you have the correct Node.js version installed. You can check the required version in the .nvmrc file. And ensure it matches to your current node version by running:

node --version
# Clone the repository
git clone [email protected]:tetherto/pearpass-app-mobile.git

# Navigate to the project directory
cd pearpass-app-mobile

# Install dependencies
npm install

# generate translation keys
npm run lingui:extract

npm run lingui:compile

# Generate worklet bundles
npm run bundle-bare

# Generate native iOS and Android directories (see Prebuild Instructions below)
npx expo prebuild --clean

Project Architecture

This project uses Expo Plugins to manage native iOS and Android configurations. The ios/ and android/ directories are not tracked in git and are generated dynamically using Expo's prebuild system.

Key Points:

  • Native directories (ios/ and android/) are gitignored
  • All native configurations are managed through Expo plugins in the plugins/ directory
  • Running npx expo prebuild --clean generates the native directories with all necessary configurations

Starting the Application

Before starting the application, you need to build it first. The build command produces bundles for iOS, iOS extension, and Android, and also runs custom prebuild:

# Build the application
npm run build

# Then start on your preferred platform
npm run ios      # For iOS
npm run android  # For Android

Prebuild Instructions

This repo is Expo-managed. The native android/ and ios/ folders are generated by prebuild and are not committed.

Standard (Play/normal) Android prebuild

npm run bundle-bare
npx expo prebuild --platform android --clean

F-Droid Android prebuild

npm run bundle-bare
PEARPASS_DISTRIBUTION=fdroid npx expo prebuild --platform android --clean

More details:

  • docs/fdroid/build.md
  • docs/fdroid/version-check.md

Testing

Unit Testing

Run unit tests with Jest:

npm test

End-to-End Testing with Maestro

PearPass uses Maestro for end-to-end testing. Maestro allows you to write UI tests in simple YAML format.

Installation

  1. Install Maestro CLI:
# macOS
brew tap mobile-dev-inc/tap
brew install maestro
  1. Verify installation:
maestro --version

Running E2E Tests

Run a specific test flow:

maestro test e2e/welcome/passwordCreate.yaml

Run all test flows:

maestro test -e e2e/

Creating Maestro Tests

Each test file must have:

  1. A config section with appId
  2. A commands section after the "---" separator

Example:

appId: com.pears.pass
---
- launchApp
- assertVisible: 'Master password'
- tapOn:
    text: 'Master password'

For more information, refer to the Maestro documentation.

Dependencies

Related Projects

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

About

PearPass is an open-source, privacy-first password manager with peer-to-peer syncing and end-to-end encryption.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors