Skip to content

OpenLake/File-Sharing-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the File Sharing Application 👋

A cross-platform intranet-based file sharing application built with Flutter, GoLang, and MinIO.

Status: Deployed Development: Ongoing License: MIT

Pull Requests Merged Open Issues Contributors


Repository Links ↥ Back to top


Table of Contents

  1. About the Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. Maintainers
  6. License

About the Project ↥ Back to top

🤔 Problem

We often need to transfer files between mobile and desktop devices. Typically, this is done using WhatsApp, Telegram, or other internet-based apps, which is inefficient for local transfers.
This project enables direct file sharing over an intranet without requiring internet connectivity.

✨ Features

  • Cross-platform intranet file sharing between multiple devices.
  • Powered by MinIO (object storage server) for efficient file handling.
  • Tech Stack:
    • Frontend: Flutter
    • Backend: GoLang
    • File Storage: MinIO

Getting Started ↥ Back to top

Prerequisites

Make sure you have the following installed:


📄 Running MinIO Server

  1. Create a directory for MinIO: mkdir ~/minio

  2. Run the server on port 9090: minio server ~/minio --console-address :9090


📄 Running Backend (Go)

  1. Navigate to the Go backend folder: cd backend

  2. Create a .env file with: LOCAL_IP="" # Your local IP connected with minio (port 9000) ACCESS_KEY="" # MinIO access key SECRET_KEY="" # MinIO secret key

  3. Install MinIO Go SDK if missing: go get github.com/minio/minio-go/v7

  4. Start backend: go run file-uploader.go


📄 Running Frontend (Flutter)

  1. Open the Flutter project in Android Studio.
  2. Update the upload/download endpoint IPs in the code with your local IP (port 8000).
  3. Run the application: flutter run

Once the setup is complete:

  • Upload files from one device via the Flutter app.
  • Files are stored in MinIO over your intranet.
  • Download files seamlessly on other connected devices.

Example (start backend in one terminal):
go run file-uploader.go

And then run the frontend Flutter app: flutter run


Contributing ↥ Back to top

We welcome contributions from the community! 🎉
Please read CONTRIBUTING.md for guidelines before submitting a pull request.


Maintainers ↥ Back to top

See MAINTAINERS.md for the full list.


Distributed under the MIT License.
See LICENSE for details.

About

File Sharing Application between different devices ( with p2p technology )

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7