Back to Projects
Personal Project

Local Network File Sharing App

NextJSGoHusky
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

Challenge / Problem

Husky commit-msg hook failed with strange errors on Windows

Solution / Implementation

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

Day 1

Requirement Identification

Day 1

Planning

Day 2-3

Design & Prototyping

Week 2-3

Backend Development

Week 3-4

Frontend Development

Week 5

Testing & Deployment

Gallery

Homepage

Homepage

Clean and responsive landing page with user-friendly navigation

Pair PC

Pair PC

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

File Sharing

File Sharing

File sharing interface

PC Interface

PC Interface

File transfer interface with progress tracking

Reference Resources

article

How to Generate a QR Code with Go

Guide on generating QR codes in Go for local network discovery

documentation

Husky - Git Hooks

Using Husky to enforce code quality and consistency with pre-commit hooks

documentation

commitlint - Local setup

Setting up commitlint for enforcing commit message conventions