A file transfer application that allows users to share files using single-use codes. Built with React, Node.js, and Express.
Try the application live at: https://file-tranfer-web-interface.onrender.com
Note: The live demo is hosted on Render.com's free tier, so initial load might take a few seconds if the server has been inactive.
- File Sharing: Transfer files using single-use download codes
- Multi-language Support: Available in English, German, and Turkish
- Modern UI: Clean and responsive interface built with Tailwind CSS
- File Type Support: Handles various file types including:
- Images (JPG, PNG, GIF)
- Documents (PDF, DOC, DOCX, TXT)
- Audio (MP3, WAV)
- Video (MP4, MOV, AVI)
- File Size Limit: Supports files up to 100MB
- Auto-cleanup: Files are automatically deleted after download
You can either use the live demo at https://file-tranfer-web-interface.onrender.com or run the application locally by following these steps:
- Node.js (v14 or higher)
- npm (v6 or higher)
- Clone the repository:
git clone https://github.com/ibrahimsezer/file_tranfer.git
cd file_tranfer
- Install dependencies for both client and server:
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install
- Start the server:
# In the server directory
npm start
- Start the client:
# In the client directory
npm run dev
The application will be available at http://localhost:5000
You can try the application directly at https://file-tranfer-web-interface.onrender.com or follow these steps for local usage:
- Click on "Upload a File" on the home page
- Select a file by clicking the upload area or dragging and dropping
- Click "Upload File"
- Once uploaded, you'll receive a unique code
- Share this code with the recipient
- Click on "Download a File" on the home page
- Enter the received code
- Click "Download File"
- The file will automatically download to your device
- Note: Each code can only be used once
- React.js
- Vite
- Tailwind CSS
- i18next (Internationalization)
- Axios
- Heroicons
- Node.js
- Express
- Multer (File handling)
- CORS
- nanoid (Code generation)
file_tranfer/
├── client/
│ ├── src/
│ │ ├── components/
│ │ ├── translations/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── public/
│ └── package.json
└── server/
├── index.js
└── package.json
The application supports multiple languages:
- English (en)
- German (de)
- Turkish (tr)
Language can be changed using the language switcher in the top-right corner.
- Single-use download codes
- Automatic file deletion after download
- File type validation
- Size limitations
- file storage
- Uploads a file and returns a unique code
- Accepts multipart/form-data
- Returns:
{ code: string }
- Downloads a file using the provided code
- Returns: File stream with appropriate headers
- Deletes file after successful download
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Ibrahim Sezer
- GitHub: @ibrahimsezer
- LinkedIn: ibrahim-sezer
- Website: ibrahimsezer.github.io
- React.js community
- Tailwind CSS team
- All contributors and users of the project