v4.15.1fluent_ui
Implements Microsoft's Windows User Interface in Flutter.
Cross-Platform Google Drive client with encryption support.
v4.15.1Implements Microsoft's Windows User Interface in Flutter.
v1.1.4Window acrylic, mica & transparency effects for Flutter on Windows, macOS & Linux.
Auto-generated client libraries for accessing Google APIs described through the API discovery service.
A client library for authenticating with a remote service via OAuth2 on behalf of a user, and making authorized HTTP requests with the user's OAuth2 credentials.
v2.4.4Responsive Grid Layout and List for Flutter
FileCryptor is for encryption and decryption files. (PDF, MP3, MP4, PNG, ...)
v0.0.1A package to use Material side sheet into your Flutter project.
To have the application automatically bring itself to the front of the stack of application windows for Mac, Linux & Desktop.
{"sdk":"flutter"}^1.0.2^1.0.0+2{"git":"https://github.com/bdlukaa/fluent_ui.git"}^0.13.5^2.0.1^6.1.6^0.0.3^6.0.4^9.2.0^2.0.15^2.1.0^5.2.2^0.0.3^5.0.1^0.0.1^2.0.11^1.8.2^1.0.2^0.2.7{"sdk":"flutter"}^2.0.0English project snapshot. Visit GitHub for the latest content.
Arthur Morgan is an experimental Flutter desktop client for storing encrypted files in Google Drive. It signs in with Google OAuth, creates or reuses an ArthurMorgan folder in Drive, encrypts local files before upload, and decrypts files locally when previewing or downloading them.
Arthur Morgan screenshot
ArthurMorgan folder in Drive, either at Drive root or inside a user-selected parent folder.arthurmorgan to check the encryption password on later launches.This project is a work in progress. The repository contains Flutter platform folders for Android, iOS, Linux, macOS, Windows, and web, but the app code is currently desktop-oriented. It uses dart:io, desktop window APIs, local browser OAuth redirects, and desktop file picking behavior.
| Feature | Status |
|---|---|
| Google OAuth sign-in | Implemented |
| Remember OAuth credentials locally | Implemented |
| Select Drive root or a named parent folder | Implemented |
Initialize an ArthurMorgan Drive folder |
Implemented |
| Password verification for an existing folder | Implemented |
| Encrypt file contents | Implemented |
| Encrypt filenames | Implemented |
| Upload one or more files | Implemented |
| List encrypted Drive files with decrypted names | Implemented |
| Download a single file | Implemented |
| Preview decrypted image files | Implemented |
| Logout | Implemented |
| Create folders from the UI | Not implemented |
| Download multiple files | Not implemented |
| Drive thumbnails | Not implemented |
| Production-grade encryption/key management | Not implemented |
On first setup, Arthur Morgan creates a folder named ArthurMorgan in Google Drive. If the user enters a custom parent folder name, the app looks for that folder and creates or reads ArthurMorgan inside it. Otherwise, it uses the Drive root.
The setup password is used to create an AES key. The app stores an encrypted verification string in a Drive file named arthurmorgan. On later launches, it downloads that verification file and checks the entered password before decrypting the file list.
Uploaded files are encrypted locally first, then uploaded to Drive. Downloaded files are decrypted locally and saved under:
<application documents directory>/ArthurMorgan/Downloads/
Arthur Morgan should be treated as experimental software, not as a production backup or password manager.
https://www.googleapis.com/auth/drive.shared_preferences.>=2.18.4 <3.0.0.For Windows development, install the Flutter Windows desktop prerequisites. For Linux or macOS, install the matching Flutter desktop toolchain and any plugin-specific native dependencies required by Flutter.
The app scans the current working directory for a .json file and reads installed.client_id and installed.client_secret from it. Keep only the intended OAuth client JSON beside the executable or in the project root when running from source.
If your Google Cloud app is still in testing mode, add your Google account as a test user on the OAuth consent screen.
Clone the repository and install dependencies:
git clone https://github.com/BeLikeSohan/arthurmorgan.git
cd arthurmorgan
flutter pub get
Put the downloaded OAuth desktop client JSON file in the repository root, then run the desktop app:
flutter run -d windows
Use the matching device id for another desktop target:
flutter run -d linux
flutter run -d macos
Build a release binary for your platform:
flutter build windows
flutter build linux
flutter build macos
After building, place the Google OAuth desktop client JSON file next to the executable or launch the app from a working directory that contains the JSON file.
lib/
main.dart App bootstrap, providers, navigation, OAuth JSON loading
functions/
googleoauthmanager.dart Browser OAuth flow and OAuth client creation
gdrivemanager.dart Google Drive API operations
filehandler.dart File picking, encryption, decryption, password verification
preferencesmanager.dart Local persisted settings and OAuth credential cache
stylehandler.dart Desktop window effect handling
providers/ ChangeNotifier state for auth, Drive, settings, sheets, tasks
pages/ Sign-in, dashboard, and settings UI
widgets/ Custom title bar and shared UI widgets
models/ File metadata models
provider.fluent_ui.googleapis and oauth2.file_picker.flutter_acrylic and window_manager.