Skip to content
Snippets Groups Projects
README.md 4.25 KiB
Newer Older
vjrj's avatar
vjrj committed
# Ğinkgo
vjrj's avatar
vjrj committed
Ğinkgo is a lightweight G1 wallet for Duniter v1 written in Flutter. The app allows users to manage their G1 currency on their mobile device using just a browser.
anfeichtinger's avatar
anfeichtinger committed

vjrj's avatar
vjrj committed
## Features
anfeichtinger's avatar
anfeichtinger committed

vjrj's avatar
vjrj committed
* Introduction for beginners
* Generation of Cesium wallet and persistence (if you refresh the page, it should display the same wallet address).
* A point-of-sale device that generates a QR code for the public address and other QR codes with amounts (which lightweight wallets will understand).
* Internationalization (i18n)
* Some contextual help (for example, by tapping on "Validity").
* Connectivity detection (to retry transactions)
* QR code reader

## Work in progress

*   Send and receive G1 transactions
*   View transaction history
*   View G1 balance and currency conversion rate
anfeichtinger's avatar
anfeichtinger committed

## Installation

This repository requires [Flutter](https://flutter.dev/docs/get-started/install) to be installed and
present in your development environment.
anfeichtinger's avatar
anfeichtinger committed

anfeichtinger's avatar
anfeichtinger committed
Clone the project and enter the project folder.
anfeichtinger's avatar
anfeichtinger committed
```sh
vjrj's avatar
vjrj committed
git clone GITURL.git
cd ginkgo
anfeichtinger's avatar
anfeichtinger committed
```

Andreas Feichtinger's avatar
Andreas Feichtinger committed
You can remove the screenshots located in [assets/img/](./assets/img).

anfeichtinger's avatar
anfeichtinger committed
Get the dependencies.
anfeichtinger's avatar
anfeichtinger committed
```sh
anfeichtinger's avatar
anfeichtinger committed
flutter pub get
anfeichtinger's avatar
anfeichtinger committed
```

Run the app via command line or through your development environment. (optional)
anfeichtinger's avatar
anfeichtinger committed
```sh
anfeichtinger's avatar
anfeichtinger committed
flutter run lib/main.dart
```

## Pub packages

This repository makes use of the following pub packages:

| Package                                                             | Version | Usage                                                |
|---------------------------------------------------------------------|---------|------------------------------------------------------|
vjrj's avatar
vjrj committed
| [Durt](https://pub.dev/packages/durt)                               | ^1.0.6  | Duniter crypto lib                                   |
| [Bloc](https://pub.dev/packages/bloc)                               | ^8.1.0  | State management                                     |
| [Flutter Bloc](https://pub.dev/packages/flutter_bloc)               | ^8.1.1  | State management                                     |
| [Hydrated Bloc](https://pub.dev/packages/hydrated_bloc)             | ^9.0.0  | Persists Bloc state with Hive                        |
| [Equatable](https://pub.dev/packages/equatable)                     | ^2.0.5  | Easily compare custom classes, used for Bloc states* |
| [Flutter Lints](https://pub.dev/packages/flutter_lints)             | ^2.0.1  | Stricter linting rules                               |
| [Path Provider](https://pub.dev/packages/path_provider)             | ^2.0.11 | Get the save path for Hive                           |
| [Flutter Displaymode](https://pub.dev/packages/flutter_displaymode) | ^0.5.0  | Support high refresh rate displays                   |
| [Easy Localization](https://pub.dev/packages/easy_localization)     | ^3.0.1  | Makes localization easy                              |
| [Hive](https://pub.dev/packages/hive)                               | ^2.2.3  | Platform independent storage.                        |
| [Url Launcher](https://pub.dev/packages/url_launcher)               | ^6.1.7  | Open urls in Browser                                 |
| [Ionicons](https://pub.dev/packages/ionicons)                       | ^0.2.2  | Modern icon library                                  |
anfeichtinger's avatar
anfeichtinger committed
#### Easy Localization
anfeichtinger's avatar
anfeichtinger committed

vjrj's avatar
vjrj committed
To add translations, add it to `assets/translations` and enable it in `main.dart`. Also go to [ios/Runner/Info.plist](./ios/Runner/Info.plist) and update the following code:
anfeichtinger's avatar
anfeichtinger committed

```
<key>CFBundleLocalizations</key>
<array>
	<string>en</string>
vjrj's avatar
vjrj committed
  <string>es</string>
anfeichtinger's avatar
anfeichtinger committed
</array>
```
vjrj's avatar
vjrj committed
``
anfeichtinger's avatar
anfeichtinger committed

anfeichtinger's avatar
anfeichtinger committed
## Screenshots

#### Light Theme

vjrj's avatar
vjrj committed
| Wallet                                                                         | Terminal card                                                                    |
|--------------------------------------------------------------------------------|-------------------------------------------------------------------------------|
vjrj's avatar
vjrj committed
| ![Home Light](./assets/img/home_light.png "A walled in form of credit card") | ![Terminal card](./assets/img/terminal.png "A terminal card metaphor") |
vjrj's avatar
vjrj committed

## Credits

vjrj's avatar
vjrj committed
- G1 logo from 
vjrj's avatar
vjrj committed
- undraw intro images: https://undraw.co/license 
vjrj's avatar
vjrj committed
- Chipcard https://commons.wikimedia.org/wiki/File:Chipcard.svg under the Creative Commons Attribution-Share Alike 3.0 Unported license.
vjrj's avatar
vjrj committed

Thanks!

anfeichtinger's avatar
anfeichtinger committed
## License

vjrj's avatar
vjrj committed
GNU AGPL v3 (see LICENSE)