For general information please checkout the wiki tab . I will update the README soon!
Decentproof is an app to allow you to create media files and verify their integrity & authenticity afterwards. The app supports: aac, mp3, mkv and png files. File hashes are securely and privacy friendly stored in the Bitcoin and Etherium blockchain and can easily and independantly verified.
Not a Dev ? Check out the wiki
- State Management: bloc + setState (the latter in some rare cases)
- Dependency Injection: get_it
- Architecture: Layered (not perfectly)
- DB: None
- Auth Service: None
- Device Integrity: AppCheck (I'm considering replacing it with freerasp)
- Translation Tool: Inlang
- Env Var management: (TODO: Envied)
A guide on how to get started with everything.
The following things are required to get started:
- Flutter sdk (see below to get it)
- Android Studio & XCode (if MacOS)
- A code editor (e.g. VSCode, JetBrains, Sublime, Vim) etc.
- The backend repository
- Setup backend by following the README
- Install dependencies via:
flutter pub get
- A firebase account with a project and appcheck enabled
- Create a
.env
file as seen below - Checkout the CONTRIBUTING file
- Either you setup firebase appcheck with this project or comment out the code related to that while debugging AppCheck.dart
- Replace the public key with the one generated in the backend
- You are good to go just use:
flutter run
to run the app
The tests folder structure is the same as the one under lib
. If you create new tests place them accordingly.
All files needs to end in **_test.dart
the _test
part is important!
Integration tests need to be placed under
integration_test
folder ! And are run viaflutter test integraton_test
.
- Run:
flutter test
in your console and you should be good to go
Point these to your urls
SIGN_URL=url-for-signature-requests
CHECK_KEY_URL=url-to-check-for-new-key
GET_KEY_URL=url-to-get-new-key
VERIFY_URL=url-to-verify-stuff
SENTRY_DSN=sentry-dsn-url
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.