file-sharing-system / README.md
abhicodes's picture
Update README.md
e1e4b5e verified
|
raw
history blame
No virus
2 kB
---
title: File Sharing System
emoji: 🔥
colorFrom: pink
colorTo: indigo
sdk: gradio
sdk_version: 4.31.5
app_file: app.py
pinned: false
license: apache-2.0
short_description: Share files and notes instantly.
---
# File Storing and Sharing System
This project is a file storing and sharing system built using Gradio for the front-end interface and MongoDB for the back-end database. The system allows users to upload files, which are then stored and managed within a specified directory. URLs for accessing these files are generated and stored in a MongoDB collection, making it easy to share and access the uploaded files.
## Key Components
### Gradio
Gradio is used to create the front-end interface, allowing users to interact with the file upload system through a simple and intuitive GUI.
### MongoDB
MongoDB is used to store metadata about the uploaded files, specifically the URLs where these files can be accessed. This project connects to a MongoDB instance using credentials stored in environment variables for security.
## Project Structure
### Environment Variables
- `SECRET_KEY`: Authetication Key to access data.
- `MONGO_USERNAME`: MongoDB username.
- `MONGO_PASSWORD`: MongoDB password.
- `REST_URI`: MongoDB URI for connecting to the database.
## How to Run
1. **Set Environment Variables**: Make sure to set the `SECRET_KEY`, `MONGO_USERNAME`, `MONGO_PASSWORD`, and `REST_URI` environment variables with your MongoDB credentials and URI.
2. **Install Dependencies**: Ensure you have `gradio`, `pymongo`, and other necessary packages installed.
3. **Run the Application**: Execute the script to start the Gradio interface and handle file uploads.
```bash
python your_script.py
```
## Conclusion
This project provides a simple yet effective solution for file storing and sharing. By leveraging Gradio for the front-end and MongoDB for the back-end, it ensures a seamless experience for users to upload and manage their files with easy access through generated URLs.