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
.envfile 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 runto 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_testfolder ! And are run viaflutter test integraton_test.
- Run:
flutter testin 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-urlA 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.