The File Sharing System is a Django-based web application that allows users to upload, share, and manage files securely. It provides essential features such as user authentication, file management, and secure file sharing. The system ensures that users can easily store files and share them with others via unique, time-limited links.
- User Authentication: Users can sign up, log in, and log out securely.
- File Upload: Users can upload files of different types (e.g., documents, images, videos).
- File Management: Users can manage their uploaded files (view, delete, etc.).
- File Sharing: Users can generate unique, shareable links to allow others to download files.
- Secure Download Links: Links are time-limited for added security.
- File Preview: Users can preview certain file types (images, PDFs, etc.).
- Admin Panel: Django's built-in admin panel for managing users and files.
- Backend: Django (Python Web Framework)
- Frontend: HTML, CSS, JavaScript (Basic UI)
- Database: SQLite (default for development)
- Authentication: Django’s built-in user authentication system
Before setting up the project, ensure the following are installed on your system:
- Python 3.x (preferably 3.8 or above)
- pip (Python package installer)
- Git
Start by cloning the repository to your local machine:
git clone https://github.com/sakib078/File-sharing-system.git
cd File-sharing-systemCreating a virtual environment ensures that dependencies for the project are isolated:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateOnce the virtual environment is activated, install the required dependencies using pip:
pip install -r requirements.txtThe project uses SQLite for local development. Set up the database with the following command:
python manage.py migrateCreate a superuser account to access the Django admin panel:
python manage.py createsuperuserFollow the prompts to set up the admin credentials.
Finally, run the development server:
python manage.py runserverYou can now access the project in your browser at:
http://127.0.0.1:8000/
- Sign Up / Login: Users can sign up for an account and log in using their credentials.
- Upload Files: Once logged in, users can upload files via the dashboard.
- Manage Files: Users can manage uploaded files (view, delete, etc.).
- Share Files: Users can generate a unique, shareable download link for their files.
- Download Files: Anyone with the link can download the file within the specified time limit.
- File Preview: Supported file types (e.g., images, PDFs) can be previewed directly on the website.
To run tests for the project, execute the following command:
python manage.py testThis will run the tests defined in the tests.py file and output the results to the terminal.
Contributions are welcome! If you'd like to contribute to the project, follow these steps:
- Fork the repository.
- Create a branch for your feature or bug fix.
- Implement your changes.
- Write tests if necessary.
- Submit a pull request to the main repository.
Make sure to create an issue if you plan to add a feature or fix a bug. This will help in managing tasks and ensuring that everyone is on the same page.
This project is licensed under the MIT License. See the LICENSE file for more details.