Changelog
=========
All notable changes to WifiX will be documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[1.0.0] - 2025-11-13
--------------------
Initial Release 🎉
Added
~~~~~
**Core Features**
- Flask backend server with RESTful API
- React frontend with Vite build system
- Real-time WebSocket communication via Socket.IO
- File upload and download functionality
- Room-based access with 6-character codes
- mDNS/Bonjour automatic network discovery
- PIN-based authentication system
**Security**
- Global room PIN protection
- Per-file PIN protection (optional)
- Session management
- Rate limiting (10 uploads/min, 20 deletes/min)
- CORS protection
- Secure file storage
**User Interface**
- Modern React-based UI
- Drag-and-drop file upload
- Real-time upload/download progress
- File list with metadata display
- Connected clients counter (host view)
- Responsive design for mobile devices
- Dark mode support
**Network Features**
- Automatic LAN IP detection
- mDNS service advertising
- Room code generation and management
- Multiple client support
- Simultaneous downloads
**Configuration**
- Environment variable configuration
- Customizable file size limits
- Configurable file TTL (time-to-live)
- CORS origins configuration
- Port and host configuration
- Rate limit customization
**Documentation**
- Complete Read the Docs documentation
- Installation guide for Windows, macOS, Linux
- Quick start guide
- Configuration reference
- API documentation (REST and WebSocket)
- Troubleshooting guide
- FAQ section
**Developer Tools**
- Docker support with docker-compose
- Development environment setup
- Testing infrastructure
- CI/CD pipeline ready
- Contributing guidelines
Security
~~~~~~~~
- Implemented Flask session security
- Added rate limiting to prevent abuse
- Secure random secret key generation
- File access control with PINs
Known Issues
~~~~~~~~~~~~
- HTTPS not enabled by default (requires manual setup)
- Client upload not supported (host-only upload)
- File previews not available
- No built-in compression for large files
[Unreleased]
------------
Planned
~~~~~~~
**Features Under Consideration**
- QR code generation for easy room joining
- File preview for images and PDFs
- Built-in HTTPS support
- Multi-room support (multiple servers on one host)
- File compression before transfer
- Transfer speed optimization
- Resume interrupted downloads
- Batch file operations
- Search and filter files
- File expiration notifications
**Improvements Being Evaluated**
- Client upload capability (with permissions)
- Mobile app (React Native)
- Desktop app (Electron)
- Built-in file encryption
- Transfer history and analytics
- Bandwidth throttling options
- Custom room names (instead of random codes)
- Integration with cloud storage
- API rate limit per user
- WebRTC peer-to-peer transfers
**Community Requests**
*Submit your feature requests on* `GitHub Issues `_
Version History Summary
-----------------------
.. list-table::
:header-rows: 1
:widths: 15 20 65
* - Version
- Release Date
- Highlights
* - 1.0.0
- 2025-11-13
- Initial release with core functionality
* - 0.9.0
- 2025-11-10
- Beta release for testing
* - 0.5.0
- 2025-11-05
- Alpha release - internal testing
* - 0.1.0
- 2025-11-01
- Proof of concept
Migration Guides
----------------
From 0.9.0 to 1.0.0
~~~~~~~~~~~~~~~~~~~
**Breaking Changes:**
None - first stable release
**New Features:**
- Added comprehensive documentation
- Improved error handling
- Enhanced security with rate limiting
- Better mobile responsiveness
**Upgrade Steps:**
.. code-block:: bash
# Pull latest code
git pull origin main
# Update backend dependencies
cd backend
pip install --upgrade -r requirements.txt
# Update frontend dependencies
cd ../frontend
npm install
# Restart services
# Backend
python app.py
# Frontend
npm run dev
Development Roadmap
-------------------
Q1 2026
~~~~~~~
- QR code room joining
- File preview functionality
- Mobile app development starts
- Performance optimizations
Q2 2026
~~~~~~~
- Client upload with permissions
- Built-in HTTPS support
- File compression
- Transfer resume capability
Q3 2026
~~~~~~~
- Desktop application (Electron)
- Multi-room support
- Advanced analytics
- Built-in encryption
Q4 2026
~~~~~~~
- WebRTC peer-to-peer mode
- Cloud storage integration
- Enterprise features
- API v2 release
Contributing
------------
We welcome contributions! See :doc:`development/contributing` for how to:
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
Release Process
---------------
1. **Version Bump:** Update version in ``package.json`` and ``conf.py``
2. **Changelog:** Document all changes in this file
3. **Testing:** Run full test suite
4. **Tag:** Create git tag ``git tag v1.x.x``
5. **Release:** Push to GitHub and create release notes
6. **Deploy:** Update documentation on Read the Docs
Versioning
----------
WifiX uses `Semantic Versioning `_:
- **MAJOR** version for incompatible API changes
- **MINOR** version for backwards-compatible functionality
- **PATCH** version for backwards-compatible bug fixes
Example:
- ``1.0.0`` → ``1.1.0`` (new features, backwards-compatible)
- ``1.1.0`` → ``1.1.1`` (bug fixes)
- ``1.1.1`` → ``2.0.0`` (breaking changes)
Support
-------
**Supported Versions:**
.. list-table::
:header-rows: 1
:widths: 20 20 60
* - Version
- Supported
- Notes
* - 1.0.x
- ✅ Yes
- Current stable release
* - 0.9.x
- ⚠️ Limited
- Upgrade recommended
* - < 0.9
- ❌ No
- Please upgrade
**Getting Support:**
- 📚 Documentation: https://wifix.readthedocs.io
- 🐛 Bug Reports: `GitHub Issues `_
- 💬 Questions: `GitHub Discussions `_
- 📧 Contact: mehmoodulhaq570
Acknowledgments
---------------
Special thanks to:
- The Flask and React communities
- Socket.IO team for real-time capabilities
- All contributors and testers
- Open source libraries we depend on
Dependencies
------------
**Backend:**
- Flask 3.0+
- Flask-SocketIO 5.3+
- Flask-CORS 4.0+
- python-socketio 5.9+
- Zeroconf 0.120+
- Flask-Limiter 3.5+
**Frontend:**
- React 18.2+
- Vite 5.0+
- Socket.IO Client 4.5+
**Full dependency list:** See ``requirements.txt`` and ``package.json``
License
-------
WifiX is released under the **MIT License**.
Copyright © 2025 mehmoodulhaq570
See :doc:`license` for full license text.