Drive Organizer is a full-stack React + Express app for managing Google Drive files, Google Tasks, Gmail report delivery, and Gemini-powered productivity workflows from a single interface.
- Browse Google Drive files and folders from the browser
- Create folders, move files, and manage file metadata
- Generate AI-assisted organization plans for Drive content
- Configure backup jobs and review backup history
- Sync Google Tasks and schedule reminders
- Compose and send executive-style Gmail reports
- Generate wallpapers and banners with Gemini image generation
- Chat with Gemini using multiple role presets and supported models
The app uses a split architecture:
- Client-side Google Workspace access: the browser talks directly to Google Drive, Google Tasks, and Gmail using OAuth scopes granted through Firebase Auth
- Server-side AI orchestration: the Express server handles all Gemini calls and keeps
GEMINI_API_KEYoff the client
Key backend behaviors:
- Firebase ID tokens are required for
/api/gemini/* - Gemini routes are rate limited
- AI routes use resilient retries and model fallback
- The server listens on
0.0.0.0:3000
The UI is organized into seven main tabs:
- Browser — inspect and manage Google Drive files
- Smart Rules — analyze files and generate organization plans
- Scheduled Jobs — configure and review backup jobs
- Reminders & Deadlines — manage Google Tasks and reminders
- Activity Visualizer — review activity and export reports
- Wallpaper Generator — create AI-generated images
- AI Assistant — multi-role Gemini chat
- React
- TypeScript
- Vite
- Express
- Firebase Auth / Firebase Admin
- Google Drive API v3
- Google Tasks API v1
- Gmail API
@google/genai- Tailwind CSS v4
- A current Node.js LTS release
- npm
- A Firebase project configured for Google sign-in
- Google Cloud access for Drive, Tasks, and Gmail APIs
- A Gemini API key
npm installCreate a .env file and set:
GEMINI_API_KEY=your_gemini_api_key
APP_URL=http://localhost:3000
FIREBASE_PROJECT_ID=your_firebase_project_idBefore running locally, make sure the repository's Firebase client configuration file contains the correct web app settings for your Firebase project so browser-based sign-in can succeed.
For local server-side Firebase ID token verification, also provide Firebase Admin application default credentials, such as GOOGLE_APPLICATION_CREDENTIALS pointing at a service account key file or another environment that supports applicationDefault().
npm run devThis starts the local full-stack development server for the app.
Open:
http://localhost:3000
npm run devnpm run lintnpm run buildnpm run startnpm run clean
GET /api/healthPOST /api/gemini/analyzePOST /api/gemini/organize-planPOST /api/gemini/compose-reportPOST /api/gemini/file-summaryPOST /api/gemini/generate-imagePOST /api/gemini/chat
src/
components/ UI features
lib/ browser-side Firebase, Google Workspace, and authenticated fetch helpers
types.ts shared app contracts
server.ts Express server and Gemini endpoints
- Do not expose
GEMINI_API_KEYto the browser - Keep Gemini requests behind verified Firebase identity
- Treat Google OAuth access as browser-session credentials only
- Preserve payload limits and rate limiting on Gemini routes