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:
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