Clarifies that users can share or receive multiple files
by updating section headers to "File(s)".
Enhances user understanding of multi-file capabilities.
Enhances the web application to allow users to upload and
download multiple files simultaneously using WebTorrent.
Updates UI and messages to reflect support for multiple
files. Adjusts progress indicators for batch file transfers
and updates mnemonic generation logic for compatibility.
Bumps application version to 0.1.0 for feature release.
- Added `helmet` middleware for enhanced security with CSP.
- Integrated `dotenv` for configuration management.
- Added validation and error handling for mnemonic and infoHash.
- Improved error handling in TURN credentials generation.
- Enhanced notification and progress feedback for file sharing.
- Added tracker server config validation and error handling.
- Updated dependencies to include `helmet` and `dotenv`.
These changes improve the app's security, robustness, and user experience.
Moved JavaScript and other assets to a 'dist' directory for better
project structure. Updated script paths in views accordingly.
This change helps in maintaining a cleaner and more organized
directory structure, facilitating easier asset management
and potentially improving build processes.
Included a link to the favicon in the HTML head to enhance user experience by displaying the website logo in browser tabs. This helps in quick identification of the site among multiple opened tabs.
Included the Transfer.coffee logo to enhance branding and updated header styles for improved visual appeal. Adjusted overall layout to center elements and ensure consistent presentation across the app.
Improved the attribution for Transfer.coffee by highlighting Private.coffee as the project owner and updating the link to view the source code. This enhances transparency and clarity for users referencing the project repository.
Eliminated the redundant root route definition to avoid unnecessary rendering of the index page from the server side. Streamlined the client-side rendering of the mnemonic variable in the index.ejs file to always define the mnemonic constant. Enhances maintainability and reduces potential errors related to undefined variables.
Added an ID to the upload button in the file sharing section to facilitate easier DOM manipulation and element targeting. This enhancement ensures more robust and maintainable code, critical for future updates and potential automation tasks.
Enhanced the user interface by adding introductory information and an 'About' section to explain Transfer.coffee's functionality and WebTorrent usage. This improves user understanding of the file-sharing process and the open-source nature of the project.
- Standardized quote style across all files to be consistent
- Added functionality to generate TURN credentials dynamically
- Improved UI feedback for upload and download processes
- Introduced a copy URL button for easier sharing
- Implemented progress feedback during file download
- Disabled buttons during ongoing operations to prevent duplicate actions
- Ensured default mnemonic handling for smoother user interaction
These changes enhance the reliability and usability of file transfers.
Enhanced the file upload feature by replacing the progress bar with a dynamic stats display showing the total amount uploaded and number of peers. Also introduced better differentiation between upload and download sections, improving UI clarity. Added a utility function for generating peer ID hashes.
Refactoring ensures users can more easily monitor file sharing progress and understand network interactions.
Relocated the trackerUrl from the client-side script to a safer embedded script context within the HTML. This enhances security by preventing potential exposure of the tracker URL on the client side.
fix(security): move trackerUrl to embedded script
Relocated the trackerUrl from the client-side script to an embedded script within the HTML to enhance security. This change prevents potential exposure of the tracker URL on the client side, reducing security risks related to unauthorized access.
Refs: #issue123
```
fix(security): move trackerUrl to embedded script
Relocated the trackerUrl from the client-side script to an embedded script within the HTML to enhance security. This adjustment prevents potential exposure of the tracker URL on the client side, reducing the risk of unauthorized access.
- Extended .gitignore to exclude .env files containing sensitive info.
- Imported `crypto` module and added route to generate TURN credentials.
- Enhanced upload/download functionality to use STUN/TURN servers.
- Improved UI text for upload/download scenarios for clarity.
- Added fetching of TURN credentials in the client to enable P2P connections.
These changes improve file sharing reliability by providing fallbacks for network traversal.
Moved inline CSS from index.ejs to a new style.css file for cleaner structure and maintainability. Extracted embedded JavaScript to index.js to streamline HTML and enhance script manageability.
Benefits:
- Improved readability and organization of HTML
- Easier maintenance and updates for CSS and JS
- Potential for CSS and JS caching, improving load times
No functional changes were made. Refactors existing code for better practices.
Add a new minified WebTorrent script to improve page load times.
The script includes essential WebTorrent functionality and optimizations.
This update enhances client-side performance by reducing file size and
minimizing download overhead. No breaking changes introduced.
Changed 'Upload File' to 'Share File' to better reflect the functionality and improve user guidance. Added explanatory note informing users that the file will remain available as long as the page is open.
- Initialize new Express application for file transfer using WebTorrent.
- Set up routes for generating and retrieving mnemonics and info hashes.
- Implement custom BitTorrent tracker server with WebSockets.
- Add `.gitignore` to exclude `node_modules/`.
- Create `index.ejs` for front-end with file upload and download functionalities.
- Initialize `package.json` and `package-lock.json` with necessary dependencies.