Safe Share is a secure and user-friendly file storage and sharing platform leveraging Firebase services for real-time database management authentication and file storage. The platform allows users to upload store view share and manage their files ensuring secure access control and smooth file handling via a simple interface.
https://sandundil2002.github.io/Safe-Share/
Here're some of the project's best features:
-
User Authentication:
- Users can securely sign up or log in to their accounts using Firebase Authentication.
- Authentication state persists across sessions for better user experience.
-
File Upload:
- Users can upload files securely to Firebase Storage.
- File metadata (such as filename, upload timestamp, and download URL) is stored in Firebase Realtime Database for easy management.
-
View Uploaded Files:
- Uploaded files are displayed dynamically as image cards in the dashboard, with options to copy the link or delete the file.
-
Copy Link:
- Users can generate and copy public file URLs with a single click to share with others.
-
Delete Files:
- Users can securely delete their files from Firebase Storage, and the corresponding metadata is removed from the Firebase Realtime Database.
-
Real-time Feedback:
- A progress bar is displayed during file uploads to track the upload percentage in real time.
- Success or failure alerts are shown using SweetAlert popups for a seamless user experience.
-
Responsiveness:
- The application is designed to be fully responsive, ensuring usability across a range of devices (mobile, tablet, desktop).
-
User Registration & Login
- Users can register for a new account or log in to an existing one.
- The profile picture is dynamically generated based on the first letter of their username.
-
Uploading Files
- After logging in, users can access the dashboard to upload files.
- The uploaded file is stored in Firebase Storage, and the metadata (such as file URL and timestamp) is saved in Firebase Realtime Database.
- The progress of the file upload is displayed with a real-time progress bar.
-
Managing Files
- Users can view their uploaded files as image cards.
- Copy Link: Copy the file URL to share with others.
- Delete: Remove the file from storage and its corresponding metadata.
-
Logout
- Users can log out from the application using the "Sign Out" button, which will redirect them to the login page.
1. Clone the Repository
git clone https://github.com/sandundil2002/Safe-Share.git
2. Firebase Setup: Go to the Firebase Console.
3. Create a new Firebase project.
4. Enable Firebase Authentication Realtime Database and Storage in the Firebase console.
5. In the project settings create a new web app and copy the Firebase configuration keys.
6. Add Firebase Configuration
const firebaseConfig = { apiKey: "YOUR_API_KEY" authDomain: "YOUR_AUTH_DOMAIN" databaseURL: "YOUR_DATABASE_URL" projectId: "YOUR_PROJECT_ID" storageBucket: "YOUR_STORAGE_BUCKET" messagingSenderId: "YOUR_MESSAGING_SENDER_ID" appId: "YOUR_APP_ID" };
7. Run Locally: You can open index.html directly in your browser or run a local server
Technologies used in the project:
- HTML5: For structuring the layout and defining the components of the app.
- CSS3: For styling and ensuring a modern responsive design.
- Bootstrap 5: To create responsive layouts and user-friendly interfaces with prebuilt UI components.
- JavaScript (ES6+): Used for managing the core functionality including interaction with Firebase services.
- Firebase Authentication: Provides secure user login and registration functionality.
- Firebase Realtime Database: Used to store metadata for each file upload such as the file URL name and timestamp.
- Firebase Storage: Secure cloud storage used for file uploads with download and delete functionality.
This project is licensed under the MIT License. See the LICENSE file for details.






