Files
OneDriveGDrive/README.md
MUIS1436 5fa3fb3d15 chore(config): add initial project configuration and setup files
- Add .env.example with Microsoft Azure AD and Google Cloud OAuth client ID placeholders
- Create .gitignore to exclude node_modules, build output, env files, IDE, OS, logs, and test coverage
- Add .prettierrc for consistent code formatting rules
- Add README.md with project overview, features, setup instructions, project structure, and technologies used
- Add components.json with UI framework and alias configuration
- Configure eslint.config.js for linting TypeScript and React code with recommended settings
- Add index.html as application entry point with root div and main script reference
- Add package-lock.json capturing full dependency tree and versions for reproducible installs
2026-01-31 08:59:18 +05:00

103 lines
2.8 KiB
Markdown
Raw Blame History

# OneDrive ↔ Google Drive Streamer
A secure, high-performance application to stream files bidirectionally between Microsoft OneDrive and Google Drive.
Now powered by a **Node.js Express backend** for reliable server-side streaming and token management.
## Features
- <20> **Bidirectional Transfers**: Move files from OneDrive to Google Drive AND Google Drive to OneDrive.
- 🚀 **Server-Side Streaming**: Files are piped directly between cloud providers on the server, ensuring faster and more reliable transfers for large files.
- <20> **Secure OAuth 2.0**: Implements robust Authorization Code Flow via the backend.
- 📊 **Real-time Progress**: Track transfer status with live progress updates.
- 📁 **File Management**: Browse and select files from your connected cloud storage.
## Prerequisites
- Node.js (v18 or higher)
- npm or yarn
## Setup
### 1. Clone the repository
```bash
git clone <repository-url>
cd <repository-directory>
```
### 2. Install Dependencies
You need to install dependencies for both the frontend and the backend.
**Frontend:**
```bash
npm install
```
**Backend:**
```bash
cd server
npm install
cd ..
```
### 3. Configure Environment Variables
**Frontend (`.env`):**
Create a `.env` file in the root directory:
```env
VITE_MS_CLIENT_ID=your_microsoft_client_id
VITE_GOOGLE_CLIENT_ID=your_google_client_id
```
**Backend (`server/.env`):**
Create a `.env` file in the `server` directory:
```env
PORT=3001
# Microsoft Graph Credentials
VITE_MS_CLIENT_ID=your_microsoft_client_id
MS_CLIENT_SECRET=your_microsoft_client_secret
# Google Drive Credentials
VITE_GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
REDIRECT_URI=http://localhost:5173/auth/callback
```
> **Note:** You must register applications in both Azure Portal and Google Cloud Console.
> Ensure the Redirect URI is set to `http://localhost:5173/auth/callback`.
### 4. Run the Application
You need to run both the backend server and the frontend client.
**Start Backend (Terminal 1):**
```bash
cd server
npm run dev
```
*Server runs on http://localhost:3001*
**Start Frontend (Terminal 2):**
```bash
npm run dev
```
*Frontend runs on http://localhost:5173*
## Project Structure
- **`/server`**: Node.js Express Backend
- `src/routes`: API endpoints (`/auth`, `/transfer`)
- `src/services`: Cloud provider integration (`onedrive.ts`, `googledrive.ts`)
- **`/src`**: React Frontend
- `components`: UI components (Cards, Progress, Alerts)
- `lib/api.ts`: API client for communicating with the backend
- `App.tsx`: Main application logic and state management
## Technologies
- **Frontend**: React, TypeScript, Vite, Tailwind CSS, Lucide Icons, Shadcn UI
- **Backend**: Node.js, Express, TypeScript, Axios, Microsoft Graph Client, Google APIs
## License
ISC