A secure and scalable full-stack web application that allows users to upload, store, and share files through time-bound and optionally password-protected links. The platform supports file metadata tracking and includes an admin dashboard for managing uploaded content.
This system is designed for internal organizational use, enabling teams to securely exchange files with controlled access. The application is built using modern technologies and follows a modular, component-based architecture for maintainability and future expansion.
- File upload with type and size validation
- Unique, expiring download links
- Optional password protection for shared files
- File metadata storage (name, size, type, upload timestamp)
- Download history and usage tracking
- Admin dashboard for managing uploads and monitoring usage
- JWT-based authentication system for admins
Frontend:
- React.js
- Vite
- TypeScript (TSX)
- Axios
Backend:
- Node.js
- Express
- Multer
- JWT
- CORS
Database:
- MongoDB (Mongoose)
Other Tools:
- Git & GitHub
- Figma (UI/UX design)
- Postman (API testing)
- Google Meet, WhatsApp (collaboration)
git clone https://github.com/Secure-File-Sharing-System.git
cd Secure-File-Sharing-Systemcd backend
npm installCreate a .env file in the backend directory with the following content:
PORT=5000
MONGO_URI=mongodb://localhost:27017/secureFileDB
JWT_SECRET=your_jwt_secret_key
Start the backend server:
npm run devcd ../frontend
npm install
npm run devThe frontend will run at: http://localhost:5173 The backend will run at: http://localhost:5000
Secure-File-Sharing-System/
├── backend/
│ ├── controllers/
│ ├── routes/
│ ├── models/
│ ├── middleware/
│ ├── .env
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── App.tsx
│ └── vite.config.ts
└── README.md
- Users upload files via the frontend interface.
- Files are validated and stored securely on the server.
- A unique, expiring download link is generated and returned to the user.
- Optional password protection can be applied to the link.
- Admin users can log in to a dedicated dashboard to view, manage, or delete uploaded files.
- All actions are tracked and logged in the database for auditing and future enhancements.
This project is being developed by a team of four engineering students as part of a full-stack development initiative.
Team Members:
- Saakshat Chandratre – Backend Development Lead
- Nirmal Arsade – Front End and UI/UX Design
This project is open-source and licensed under the MIT License.