The ArDrive Web App allows a user to log in to securely view, upload and manage their ArDrive files.

Overview

ArDrive Web

deploy contributions welcome

The ArDrive Web App allows a user to log in to securely view, upload and manage their ArDrive files.

Have any questions? Join the ArDrive Discord channel for support, news and updates. https://discord.gg/ya4hf2H

Setting up the Development Environment

If your environment is using homebrew, install the Flutter SDK with its cask as shown below. Alternatively, visit the [Flutter Installation Instructions][https://flutter.dev/docs/get-started/install] to get the Flutter SDK up and running for your OS / local setup.

# with homebrew

brew install --cask flutter

Then, generate the package imports with:

flutter pub get

Whenever changing branches or initially setting up, compile the codebase to resolve errors:

flutter pub run build_runner build --delete-conflicting-outputs

Then, to begin code generation and watch for changes, run:

flutter packages pub run build_runner watch

Finally, to start a development instance for web, run:

flutter run -d Chrome

All changes made to dev will be continuously deployed to staging.ardrive.io. All PRs from this repo merging into dev will trigger a preview build that can be shared freely.

Release

To create a release to app.ardrive.io, first merge any changes from dev into master that are required, and publish a new release through the GitHub UI with the tag name matching the pattern v* eg. v1.0.1.

This will trigger a GitHub Action that will deploy master to production.

Comments
  • PE-1078: Move string literals into resources file

    PE-1078: Move string literals into resources file

    This PR moves all string literals into the ARB file.

    How to review

    • At the codebase:
      • Ensure the text is replaced with the correct internationalization variable
      • Ensure the Text that was in upper case calls toUpperCase() after the replacement
    • At the ARB file:
      • Check that the description gives the right context information to understand the text
        • Check for ellipsis: is the substantive omitted? If so, is it implicit in the description?
        • Is it talking about plural or singular verbs?
    opened by matibat 9
  • fix: Properly handle 5xx errors on sync PE-1747

    fix: Properly handle 5xx errors on sync PE-1747

    Overview

    For getting the metadata data while syncing we are not retrying for 5xx status code responses, this leads to a false positive and we also don’t retry to get the metadata properly.

    Errors

    In order to track in a better way the errors, the class ArDriveError will be responsible for being the base class for exceptions. The class NetworkError will be the base class for all network errors, having its implementation on: ServerError RateLimitError NetworkTimeOut UnknownNetworkError Those errors are well known and will help us to improve our error handling.

    HttpRetry

    This class abstracts the retry logic for dart:http library requests. For handling the response, we'll use the GatewayResponseHandler class. For RateLimitError we won't retry. It is because we need to wait until be free of the rate limit.

    opened by thiagocarvalhodev 5
  • Update Dart sdk and packages versions

    Update Dart sdk and packages versions

    Upgrade Flutter version

    Update the Dart SDK and the versions of outdated packages.

    Motivation

    With the current version of Dart 2.13.0 we aren't able to update the version of Flutter to the latest: 2.10.3. To know more about the improvements in this version, see: Flutter 2.10.0 improvements.

    opened by thiagocarvalhodev 5
  • PE-2365: App-Version, App-Platform and App-Platform-Version

    PE-2365: App-Version, App-Platform and App-Platform-Version

    Adds extra tagging for the Flutter App to distinguish the platform from where it was uploaded.

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/5tufi7h8vct90 iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/44njrtdqphdf8

    opened by matibat 4
  • PE-2315: feat: add crashlytics to mobile app

    PE-2315: feat: add crashlytics to mobile app

    In the test phase of the mobile app is very important to have a tool to log errors on release mode applications. To do so, we’ll use the FirebaseCrashlytics. We won’t enable it on production.

    --- Releases --- iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/02dj3i89vddag Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/1gpcb7gid0s3g

    opened by thiagocarvalhodev 4
  • PE-1918: PST composite

    PE-1918: PST composite

    Changes

    • Ports the safe types: ArweaveAddress, Winston, and TransactionID from CORE into Dart
    • Implements a Builder for the contract state
    • Implements the ContractReader interface
      • Implements RedstoneContractReader
      • Implements VertoContractReader
      • Implements SmartweaveContractReader
        • which refactors the implementation of web-pst to simply read the contract (removed the TS code that is already ported to Dart)
    • Implements the ContractOracle ~interface~ class
      • Implements ArDriveContractOracle (the composite class; implements ContractOracle)
    • Implements the CommunityOracle ~interface~ class
      • which makes use of a ContractOracle (e.i. the composite class) to make high-level computations
    • Injects the CommunityOracle to the PSTService

    TODO

    • ~Make the weightedRandom method testable~
    opened by matibat 4
  • feat: direct inferno icon to chinese rules PE-1808

    feat: direct inferno icon to chinese rules PE-1808

    The rules for Inferno are written in English and Chinese, yet the in-app fire icon only directs users to the English rules page. We need to ensure that users of the Chinese version of the app are redirected to the Chinese rules page.

    opened by thiagocarvalhodev 4
  • PE-815: Create manifest

    PE-815: Create manifest

    This PR adds the create manifest feature for public drives.

    The cubit/form/state patterns are largely extended from the existing code as I was learning to work with the Flutter codebase and learn Dart in general. Specifically, create manifest uses a similar flow to the ghost folder cubit as suggested by @jdaev.

    I've extracted some logic for the manifest out into the new ManifestEntity class for testability where it made sense to do so here. I could continue, but its functional and I'm opening it up for review in its current state for feedback.

    opened by fedellen 4
  • Missing folders cause drive to fail to load + possibly other issues

    Missing folders cause drive to fail to load + possibly other issues

    Experienced a public drive failing to sync/display due to a missing folder that other folders were referring to.

    The drive gets stuck in a state where the loading symbol (on the file display portion, not in the sync dialog) is displayed indefinitely, with no drive data or controls available.

    I've observed this to happen in the following filesystem layout: Root Folder -> Missing Folder -> Folder 1 (has files) + Folder 2 (has files) Only Folders 1 and 2 have files.

    The absence of "Missing Folder" confirmed to be the cause of this issue as the problem drive now loads and displays properly after I manually created an ArFS-entity transaction for it.

    This behaviour can be reproduced by creating a folder under the drive root folder that points to a Parent-Folder-Id that doesn't exist (using a made-up ID such as 1337babe-511a-dead-beef-ffffffffffff. Don't use that though. It's mine).

    Currently, it seems that this issue has been fixed for the code that deals with shared drives (it gracefully displays the orphaned files in the root folder), but is still present when logged with a wallet that contains the drive.

    Here's an error from an attempt of syncing the problem drive: Screenshot from 2021-10-10 17-31-01


    It may be that this bug is also behind of an issue of a substantial amount of my private drive files and folders not displaying in ardrive-web while visible and downloadable by ardrive-cli (fresh install, confirmed to be mined properly). Let me know once you've verified that this bug is fixed and I'll make another issue if this condition still prevails.

    opened by Silanael 4
  • Random freezes and logouts

    Random freezes and logouts

    While typing a long password at login, the app freezes for a small moment every time. Sometimes it momentarily freezes when preparing an upload (the animation stops), and I've even observed it freeze completely during uploading a few times (it would seem that the uploads succeeded nonetheless).

    It also does random logouts in a way that requires a full login (name, password and terms-accepting) instead of just asking for a password. These often happen right after an upload completes, sometimes at idle (perhaps triggered by sync).

    I'm guessing the latter might be a timeout-issue stemming from the former. Something is probably done in the UI-thread that should be done in a separate tread/asynctask/whatever you flutter-people use.

    This behaviour was observed using ArConnect, Chromium 92.0.4515.107, GNOME 40.3.0, Manjaro Linux (kernel 5.12.19-1). Might be just an issue with my system, but here's a report nonetheless.

    opened by Silanael 4
  • PE-2576: Add TabView

    PE-2576: Add TabView

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/5v0ui48plqlso iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/5viu967cohe5g

    opened by jdaev 3
  • PE-2784: fix storage permissions for android 13

    PE-2784: fix storage permissions for android 13

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/7tkmn6sd5h3vg iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/05cfaus0p4qs0

    opened by karlprieb 1
  • PE-2758: Implement turbo uploads

    PE-2758: Implement turbo uploads

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/7fphmbta7de0o iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/3qstngar8mgc0

    opened by jdaev 1
  • v1.35.0

    v1.35.0

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/2fkbant0feeig iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/3nqedj90285do

    opened by GiMartinezz 1
  • PE-2618: Sync from Snapshots

    PE-2618: Sync from Snapshots

    Integration branch for the Story's sub-tasks.

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/7unj2boou3560 iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/56ec6b5bfal0g

    opened by matibat 1
  • PE-2583: Login Flow

    PE-2583: Login Flow

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/4si2aomlsk9v0

    opened by jdaev 1
  • PE-2741: shortcuts

    PE-2741: shortcuts

    --- Releases --- Android release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:android:6cf0cd5ec064fad3ffce07/releases/0mhrgcr47h4f8 iOS release: https://appdistribution.firebase.google.com/testerapps/1:305132849030:ios:06ea33a95a2e0d42ffce07/releases/3dm08s97eok08

    opened by thiagocarvalhodev 1
Releases(v1.40.0)
  • v1.40.0(Nov 29, 2022)

  • v1.39.0(Nov 17, 2022)

    Release notes:

    • Limit private file download size on Mobile to 300Mib
    • Add Time Stamps to File/Folder Details
    • Added a deep resync option which clears data caches before syncing
    • Fixes an issue with sorting files and folders
    Source code(tar.gz)
    Source code(zip)
  • v1.38.0(Nov 8, 2022)

    Release notes:

    • Upgrades Flutter to 3.3.5
    • Adds a button to copy the wallet address in the profile modal
    • Fixes an issue downloading private shared files
    • Fixes an issue downloading previous revisions of shared files
    Source code(tar.gz)
    Source code(zip)
  • v1.37.0(Nov 2, 2022)

  • v1.36.0(Oct 25, 2022)

  • v1.35.0(Oct 21, 2022)

  • v1.34.0(Oct 11, 2022)

  • v1.33.0(Oct 4, 2022)

    Release notes

    • Users can now hold the ctrl key (cmd on Mac) to select multiple files in the Drive Explorer. They can then move them to another folder.
    • Fix the broken download button on the share page on mobile
    Source code(tar.gz)
    Source code(zip)
  • v1.32.0(Sep 22, 2022)

  • v1.31.0(Sep 19, 2022)

    Release notes

    • The feedback modal is now centered on mobile web
    • Adds a scroll when the keyboard is appearing on the login page
    • Fixes an error when uploading multiple files with at least one above the upload limit
    • Properly remove conflicting files after hitting the skip button on the upload
    Source code(tar.gz)
    Source code(zip)
  • v1.30.0(Sep 2, 2022)

    Release Notes:

    • Adds an information panel to the share file page
    • Users can now download other versions of a shared file through the activities panel.
    Source code(tar.gz)
    Source code(zip)
  • v1.29.1(Aug 25, 2022)

  • v1.29.0(Aug 22, 2022)

  • v1.28.0(Aug 19, 2022)

    Release notes:

    • Updates Flutter major version to 3.
    • Adds support for SVG assets.
    • Implemented a new IO package.
    • Increase public files limit to 1.2 GiB
    • Adds new translations
    Source code(tar.gz)
    Source code(zip)
  • v1.27.1(Aug 11, 2022)

  • v1.27.0(Aug 11, 2022)

  • v1.26.2(Aug 8, 2022)

  • v1.26.1(Aug 4, 2022)

  • v1.26.0(Aug 1, 2022)

  • v1.25.1(Jul 20, 2022)

  • v1.25.0(Jul 14, 2022)

    Release notes:

    • Prevent users from sharing invalid files
    • Fix issue where entities displayed under the wrong parent
    • Improved robustness during sync
    • Updates Chinese translations
    Source code(tar.gz)
    Source code(zip)
  • v1.24.0(Jul 11, 2022)

  • v1.23.0(Jul 5, 2022)

    Release Notes

    • Improved error handling during sync.
    • Added survey feedback modal.
    • Inferno links go to the Chinese page for Chinese locales.
    • Minor UI updates for Inferno.
    Source code(tar.gz)
    Source code(zip)
  • v1.22.1(Jun 28, 2022)

    Release notes:

    • Fixes an error that caused sync to fail under certain conditions
    • Fixes an issue uploading tar.gz files with the wrong mime-type #226
    Source code(tar.gz)
    Source code(zip)
  • v1.22.0(Jun 20, 2022)

  • v1.21.0(Jun 14, 2022)

    Release notes:

    • Logging out and logging back in will no longer prompt the user to attach the previous selected drive
    • Files that are too large to upload will now be filtered out before checking for name conflict resolution
    • Drive explorer view now supports sorting by numerical values in the order in which they appear on the number line
    Source code(tar.gz)
    Source code(zip)
  • v1.20.0(Jun 6, 2022)

  • v1.19.1(May 27, 2022)

  • v1.19.0(May 26, 2022)

    Release notes:

    • Fixes an issue attaching public drives through sharing links
    • At the upload time when there’s a file too big to be uploaded, there’s the option to skip that one and proceed with the others
    • Adds missing Spanish translations
    Source code(tar.gz)
    Source code(zip)
  • v1.18.0(May 23, 2022)

    Release notes:

    • Improves Sync speed by removing extra redirects to the Arweave gateway.
    • Updates the Help link to point to the new Help Center in Zendesk
    Source code(tar.gz)
    Source code(zip)
Owner
ArDrive App
ArDrive is a private, secure, decentralized, censorship-resistant and permanent data storage solution, for everyone.
ArDrive App
Academic master is E-learning app where students can share their doubts wiith their peers they can chat and also they can find their notes

Academic Master is E-learning App. Features:- 1) You can post real Post query in Images and video formates. 2) We will Provide notes,books and previou

amit singh 25 Dec 14, 2022
App to manage staff and their shifts.

Staff management app App to manage staff and their shifts. General info This project is thought for workers at companies who manage a big amount of st

Quetzalbirdy 0 Nov 7, 2021
A freelancer project: A flutter app to manage files and certificates of employees in an organization. It uses AWS for authentication, Storage and DynamoDB.

certify A Certificate Management project. Getting Started This project is a starting point for a Flutter application. A few resources to get you start

null 0 Feb 3, 2022
A platform for car sharing where users can book any car that suits their needs and wants for their intended journey, from the closest hosts in the community.

Getting Started This project is a starting point for a Flutter application. For help getting started with Flutter, view our online documentation, whic

Faisal Ramdan 28 Apr 29, 2022
It is a Mobile Application built with Flutter to help Instructors reach their students with the material needed for their course (Videos, PDFs, Exams)

Droos - Flutter Mobile Appliction It is a Mobile Application built with Flutter to help Instructors reach their students with the material needed for

Abdulrahman Emad 4 Oct 5, 2022
A program for Mac, Windows and Linux to manage multiple translation files at once

A program for Mac, Windows and Linux to manage multiple translation files at once. Easy to use UI, multithreaded for optimization and Google Translate natively integrated. NB: At the moment it doesn't support nested translation keys.

Jesper Paulsen 4 Aug 8, 2022
A Food App using Flutter & Firebase to post and view food blogs along with their recipes.

A Food App using Flutter ?? & Firebase ?? About the App ?? FoodLab is a App to post and view food blogs along with their recipes if you want ?? ! Logi

Shivani Singh 170 Dec 24, 2022
Download files from Firebase Storage with Flutter. List all images, videos, or other files from Firebase and download them.

Flutter Tutorial - Download Files From Firebase Storage Download files from Firebase Storage with Flutter. List all images, videos, or other files fro

Johannes Milke 28 Dec 4, 2022
A flutter plugin to get facebook deep links and log app events using the latest Facebook SDK to include support for iOS 14

Facebook Sdk For Flutter LinkedIn GitHub facebook_sdk_flutter allows you to fetch deep links, deferred deep links and log facebook app events. This wa

Saad Farhan 23 Dec 17, 2022
Grid-View-App - Grid View App For Flutter

grid_view_app practice purpose flutter application Getting Started This project

Md Tarequl Islam 4 Jun 9, 2022
How login , register and log out Firebase Textformfield with focusNode. InheritedWidget example.

flutter_fire_base_register How login, register and log out Firebase. Textformfield with focusNode InheritedWidget exam. Stream provider usage. App Hom

Taylan YILDIZ 1 May 8, 2021
An app to pick, upload and display images from camera and gallery with size and extension constraints.

image_uploader A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Ehmad Saeed⚡ 4 Mar 7, 2022
Flutter Multi-platform allows developers to unleash their app to run on the wide variety of different platforms with little or no change.

Flutter Multi-platform sample Flutter Multi-platform allows developers to unleash their app to run on the wide variety of different platforms with lit

MindInventory 22 Dec 31, 2022
All four are used to log into a Firebase backend.

Auth This library package works with four plugins: firebase_auth google_sign_in flutter_facebook_login flutter_twitter All four are used to log into a

Andrious Solutions Ltd. 46 Dec 14, 2022
A simple log catch server powered by flutter.

flutter_logcat A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

bebe 1 Jan 9, 2022
A visualized dynamic programming for log collection based on flutter.

A visualized dynamic programming for log collection based on flutter. Pub使用 1. Depend on it Add this to your package's pubspec.yaml dependencies: mag

Wuba 48 Nov 22, 2022
Flutter list view - An unofficial list view for flutter

Flutter List View I don't like official list view. There are some features don't

null 24 Dec 15, 2022