Skip to content

A simple file-sharing application using React.js, Node.js, Express, AWS S3 and AWS EC2. Users can upload files, generate shareable links, and download files seamlessly.

Notifications You must be signed in to change notification settings

yashan0202/file_sharing_web

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Sharing App with AWS S3 & React

A simple file-sharing application using React.js, Node.js, Express, and AWS S3.
Users can upload files, generate shareable links, and download files seamlessly.


🚀 Features

  • 📂 Upload files from your local system.
  • 🔗 Generate a shareable link for each uploaded file.
  • 📥 Download files using the shared link.
  • 🔄 Copy link to clipboard for easy sharing.
  • Files stored securely in AWS S3.
  • 🛠️Hosted and Deployed on Amazon EC2.

📌 Tech Stack

Frontend (React.js)

  • React.js
  • Axios (for API requests)
  • CSS for styling

Backend (Node.js & Express)

  • Express.js (Server)
  • AWS SDK (for S3 integration)
  • Multer (for handling file uploads)
  • dotenv (for environment variables)

Cloud Storage

  • AWS S3 (Amazon Simple Storage Service)
  • EC2 (Elastic Cloud Compute)

⚡ Getting Started

Follow these steps to set up the project locally.

1️⃣ Clone the Repository


git clone https://github.com/yashan0202/file_sharing_web.git
cd file_sharing_web


🖥 Frontend Setup (React.js)

2️⃣ Install Dependencies


cd frontend
npm install

3️⃣ Start the Frontend


npm start

The app will run on http://localhost:3000.


🌐 Backend Setup (Node.js + Express)

4️⃣ Install Backend Dependencies


cd backend
npm install

5️⃣ Configure Environment Variables

Create a .env file in the backend folder and add your AWS credentials:


PORT=5000
AWS_REGION=your-region
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_BUCKET_NAME=your-bucket-name

6️⃣ Start the Backend Server


node server.js

The backend will run on http://localhost:5000.


📌 API Endpoints

1️⃣ Upload File

  • Endpoint: POST /api/files/upload
  • Request: FormData (file)
  • Response:

{
  "message": "File uploaded successfully",
  "url": "https://your-bucket.s3.your-region.amazonaws.com/filename",
  "name": "filename"
}



📜 License

This project is open-source and available under the MIT License.


🙌 Acknowledgments

  • AWS S3 for file storage
  • EC2 for Hosting & Deployment
  • React.js & Node.js for development
  • Node.js & Express for backend
  • Multer for handling file uploads

💡 Contributing

Feel free to fork this repo, create a new branch, and submit a Pull Request (PR).


📬 Contributors

Developer: Yash

Developer: Rafiya

Developer: Vamshi

Developer: Snehal

Developer: Shruti

Developer: Vinay

Developer: Krutika

About

A simple file-sharing application using React.js, Node.js, Express, AWS S3 and AWS EC2. Users can upload files, generate shareable links, and download files seamlessly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 48.9%
  • CSS 36.0%
  • HTML 15.1%