Inspiration
In today’s digital world, sharing files is often risky — links can stay online indefinitely, files may be intercepted, or recipients may download them without control. We wanted a way to share sensitive files securely with time-limited or download-limited access, without relying on third-party cloud providers.
What it does
Secure File Share allows a user to:
- Upload a file, encrypt it in the browser, and set an expiration rule (time or max downloads).
- Generate a unique, secure download link that can also be password-protected.
- Automatically delete the file when conditions are met, ensuring no trace remains.
- Optionally notify the sender when the file has been accessed.
How we built it
- Frontend: Angular app, using the WebCrypto API for AES-GCM encryption before files ever leave the browser.
- Backend: Node.js + Express, handling storage, token generation, and enforcing rules.
- Database: SQLite for storing metadata (tokens, file info, expiry rules).
- Scheduler: node-cron to automatically clean up expired files.
- Security: Password hashing with bcryptjs, HTTPS communication, and strict rate limits.
Challenges we ran into
- Implementing client-side encryption with AES-GCM in Angular and ensuring compatibility with the backend.
- Handling large file uploads without exceeding size limits.
- Making sure files were deleted reliably on expiry or max-download trigger.
- Keeping the setup lightweight and local (no external dependencies like AWS or Firebase).
Accomplishments that we're proud of
- Built a fully working secure file sharing prototype with automatic expiration.
- Ensured that files are encrypted before upload, giving true end-to-end security.
- Designed a system that can run locally with minimal setup, making it highly accessible.
What we learned
- How to use WebCrypto in Angular for real encryption tasks.
- The importance of cleaning up expired content automatically to maintain security.
- How to balance usability and security — making it simple for users while still enforcing strong protections.
What's next for Secure File Share
- Add cloud deployment options so it can scale beyond a local setup.
- Implement multi-file uploads and drag-and-drop support.
- Enhance audit logs and reporting for enterprise use.
- Add mobile-friendly UI for on-the-go secure sharing.
- Explore end-to-end identity verification for even stronger protection.
Built With
- angular.js
- bcryptjs
- express.js
- jwt
- node.js
- sqlite
Log in or sign up for Devpost to join the conversation.