A hybrid mobile app built with the Ionic framework and SvelteKit, allowing users to securely handle their credentials and verify them with the DIDroom stack.
Download the latest test release on your Android device and install the APK:
The app follows a structured deployment approach across different environments, allowing for gradual and controlled releases. Below is a breakdown of the deployment intentions and how versioning is managed across different deployment types:
Deployment Type | Environment | Version Name | Version Code |
---|---|---|---|
github-release | prod | Semantic Versioning | Semantic versioning without dot |
beta | prod | Semantic Versioning - beta | Max version code on PlayStore + 1 |
alpha | staging | Semantic Versioning - alpha | Max version code on PlayStore + 1 |
firebase | staging | Semantic Versioning - PR number | PR number |
- github-release: Full production release, available to all users through official app stores. Follows semantic versioning without any additional labels.
- beta: Limited production release intended for beta testers. The version name will include a
-beta
label, and the version code is incremented from the current max version in the Play Store. - alpha: Early release for staging environments, meant for alpha testers. The version name will include an
-alpha
label, and the version code will increment similarly to beta. - firebase: Used for internal testing and Continuous Integration (CI) with Firebase App Distribution. The version name corresponds to the PR number, and testers receive updates directly via Firebase.
To be included as a tester for closed alpha or Firebase releases, please email us at:
๐ง [email protected]
Once added, you will receive instructions on how to download the app and provide feedback.
Provide an existing email and a password (minimum 8 characters) to create a new user. Generate your own mnemonic phrase by answering security questions. While it is possible to recover the password, the mnemonic phrase is strictly personal and should be stored in a safe place. You can recover the mnemonic phrase by answering the security questions again.
Login with your email and password. Then, type your mnemonic phrase to access the wallet.
In the profile page, you can change language settings or log out the current user.
The app will request permission to access the camera. This is necessary for scanning QR codes.
The wallet is the main page of the app. Here you can see your balance and the list of your credentials. You can also add a new credential by scanning a QR code or by selecting a credential issuer from the list.
You can verify your credentials by scanning the QR code from the Verifier App. The app will display the result of the verification and send the result to the verifier. You can review all the data shared with the authorization server before sending it.
The activities page shows the history of your interactions with the app. Here you can see the list of credentials obtained or expired and the list of verifications made.
Ensure you have the following tools installed on your machine:
- Node version >= 20.11
- Pnpm
- Java
- Android Studio
- Xcode
Refer to the Ionic Installation Guide for more information.
Create a .env
file in the root of the project containing the PUBLIC_BACKEND_URL
variable. This is the URL of the DIDroom dashboard. You can clone the dashboard from here.
-
Clone the repository:
git clone --recursive https://github.com/ForkbombEu/wallet.git
-
Install dependencies:
pnpm install
-
Sync dependencies with Capacitor:
pnpm cap sync
-
Run the app in the browser (note that it will have some limitations compared to the native app):
pnpm web
-
Run the app on Android:
pnpm android
-
Run the app on iOS:
pnpm ios
The theme of the app is defined in the src/theme/variables.css
file. You can change the colors and fonts of the app by defining the following variables for light and dark themes:
--surface
--primary
--primary-text
--secondary-text
--accent
--on-accent
--highlight
--success
--warning
--error
--statusbar
--stroke
--ion-default-font
--ion-font-family
For further configuration, clone the didroom-components repository and follow the instructions in the README file. Ensure the app in src/routes/+layout uses the new components.
Install playwright:
npx playwright install --with-deps
In order to launch the tests, you need to install playwright and to have a local copy of the DIDroom dashboard running. You can copy the db for testing contained in /tests/fixtures/test.db
in signroom/admin/pb_data/data.db
then run in that folder:
go build
./pb migrate
./pb serve &
Run the tests passing envoiroment variables:
[email protected] USER_PASSWORD=12345678 USER_SEED="skin buyer sunset person run push elevator under debris soft surge man" pnpm test:integration
Please first take a look at the our Contributor License Agreement then
- ๐ FORK IT
- Create your feature branch
git checkout -b feature/branch
- Commit your changes
git commit -am 'feat: New feature\ncloses #398'
- Push to the branch
git push origin feature/branch
- Create a new Pull Request
gh pr create -f
- ๐ Thank you
๐ฑ Ecosystem - W3C-DID Dyne, Signroom, Zenroom, Didroom
๐ฉ Issues - Bugs end errors you encounter using {project_name}.
[] Matrix - Hanging out with the community.
๐ฃ๏ธ Discord - Hanging out with the community.
๐ช Telegram - Hanging out with the community.
Copyleft ๐ฏ 2024 by Forkbomb BV, Amsterdam
Designed by Micol Salomone and Ayse Mete coded by Puria Nafisi Azizi
Path bug
If you get an error like:
SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '/Users/<HOME_NAME>/Documents/GitHub/wallet/android/local.properties'.
duplicate android/local.properties.example
as android/local.properties
and set correct path