A Flutter application that allows users to create, view, edit and delete notes that are stored and synced with Google Drive.
- 🔐 Google OAuth 2.0 Authentication - Secure sign-in with Google account
- 📝 Note Management - Create, view, edit, and delete text notes
- ☁️ Google Drive Integration - All notes are stored as text files in a "DriveNotes" folder on your Drive
- 🌓 Dark/Light Theme - Toggle between light and dark themes
- 📱 Responsive UI - Modern Material 3 design that works across different screen sizes
(Screenshots would go here in a real README)
- Flutter (2.0.0 or higher)
- A Google Cloud Platform account
- Go to the Google Cloud Console
- Create a new project (or select an existing one)
- Enable the Google Drive API:
- Navigate to "APIs & Services" > "Library"
- Search for "Google Drive API" and enable it
- Create OAuth 2.0 credentials:
- Navigate to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Select "Android" as the Application type
- Enter your app details and SHA-1 signing certificate
- For additional platforms, create separate OAuth client IDs as needed
-
Clone this repository:
git clone https://github.com/yourusername/drive_notes.git cd drive_notes -
Update the OAuth credentials:
- Open
/lib/features/auth/services/auth_service.dart - Replace the values for
_clientIdwith your own credentials
- Open
-
Install dependencies:
flutter pub get
-
Run code generation for JSON serialization:
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app:
flutter run
lib/
├── core/ # Core functionality
│ └── theme/ # App theme configuration
├── data/ # Data layer
│ └── models/ # Data models
├── features/ # Feature modules
│ ├── auth/ # Authentication feature
│ │ ├── providers/ # Auth state management
│ │ └── services/ # Auth services
│ └── notes/ # Notes feature
│ ├── providers/ # Notes state management
│ └── services/ # Notes services (Drive integration)
├── presentation/ # UI layer
│ ├── routes/ # Navigation/routing
│ └── screens/ # App screens
└── utils/ # Utility functions and helpers
- flutter_riverpod: State management
- dio: HTTP client for API requests
- flutter_secure_storage: Secure storage for OAuth tokens
- googleapis and googleapis_auth: Google API integration
- go_router: Navigation and routing
- json_serializable: JSON serialization/deserialization
- The app requires an internet connection for most operations
- Offline support is limited
- Only plain text notes are supported (no formatting or media)
- Note search functionality is not implemented
- Offline mode with background sync
- Rich text formatting support
- Note categories/tags
- Search functionality
- Note sharing
- Biometric authentication
This project is licensed under the MIT License - see the LICENSE file for details.