Local Network File Sharing App

Overview
Built with NextJS and Golang. Features include file sharing, local network discovery by QR code, and user authentication.
Key Features
- File Sharing
- Local Network Discovery by QR Code
- User Authentication
- Responsive Design with Tailwind CSS
Architecture & Decisions
- Golang for BackendUsed Golang for its performance and concurrency support, allowing for efficient handling of file transfers over the local network.
- QR Code for Local Network DiscoveryUsed QR code scanning for local network discovery, allowing users to easily connect their devices without manual configuration.
- Husky for Pre-commit HooksUsed Husky to enforce code quality and consistency by running linting and formatting checks before commits.
Challenges & Solutions
Husky commit-msg hook failed with strange errors on Windows
Discovered the script was saved with UTF-16 LE encoding and CRLF line endings, causing shell to misinterpret it. Converted the script to UTF-8 with LF endings and made it executable, which resolved the issue. Learned the importance of using proper encoding and line endings in cross-platform development.
Project Timeline
Requirement Identification
Planning
Design & Prototyping
Backend Development
Frontend Development
Testing & Deployment
Gallery

Homepage
Clean and responsive landing page with user-friendly navigation

Pair PC
Pairing connected mobile device with PC to ensure proper communication using a key

File Sharing
File sharing interface

PC Interface
File transfer interface with progress tracking
Reference Resources
How to Generate a QR Code with Go
Guide on generating QR codes in Go for local network discovery
Husky - Git Hooks
Using Husky to enforce code quality and consistency with pre-commit hooks
commitlint - Local setup
Setting up commitlint for enforcing commit message conventions