{"id":29503584,"url":"https://github.com/yadavnikhil03/lan-dropspot","last_synced_at":"2026-04-11T18:02:28.774Z","repository":{"id":304598647,"uuid":"1019272246","full_name":"yadavnikhil03/LAN-DropSpot","owner":"yadavnikhil03","description":"It’s a simple tool that lets you share files instantly with anyone on your Wi-Fi , just drop a file and send them the link or QR code, no internet needed","archived":false,"fork":false,"pushed_at":"2025-07-14T05:47:29.000Z","size":98,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-14T07:30:43.852Z","etag":null,"topics":["async","css3","fastapi","file-sharing","file-transfer","html5","javascript","lan-sharing","local-network","peer-to-peer","python","rest-api","tailwindcss","websocket"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yadavnikhil03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-14T04:40:31.000Z","updated_at":"2025-07-14T05:50:47.000Z","dependencies_parsed_at":"2025-07-14T07:30:49.909Z","dependency_job_id":"769cac21-052d-4fb6-8d40-26547022dad9","html_url":"https://github.com/yadavnikhil03/LAN-DropSpot","commit_stats":null,"previous_names":["yadavnikhil03/lan-dropspot"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/yadavnikhil03/LAN-DropSpot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadavnikhil03%2FLAN-DropSpot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadavnikhil03%2FLAN-DropSpot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadavnikhil03%2FLAN-DropSpot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadavnikhil03%2FLAN-DropSpot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yadavnikhil03","download_url":"https://codeload.github.com/yadavnikhil03/LAN-DropSpot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadavnikhil03%2FLAN-DropSpot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265466198,"owners_count":23770504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","css3","fastapi","file-sharing","file-transfer","html5","javascript","lan-sharing","local-network","peer-to-peer","python","rest-api","tailwindcss","websocket"],"created_at":"2025-07-15T23:01:23.470Z","updated_at":"2026-04-11T18:02:28.716Z","avatar_url":"https://github.com/yadavnikhil03.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/user-attachments/assets/46663ce4-9edc-4035-b637-53ff41ac5f24\" alt=\"LAN DropSpot Logo\" width=\"800\"/\u003e\n\n\n**⚡ Lightning Fast • Zero Setup • LAN Powered**\n\n[![Python](https://img.shields.io/badge/Python-3.8+-blue?style=flat-square\u0026logo=python)](https://python.org)\n[![FastAPI](https://img.shields.io/badge/FastAPI-Latest-green?style=flat-square\u0026logo=fastapi)](https://fastapi.tiangolo.com)\n[![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE)\n[![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey?style=flat-square)](README.md)\n\n[🎯 Features](#-features) • [🚀 Quick Start](#-quick-start) • [📖 Documentation](#-documentation) • [🛠️ API Reference](#️-api-reference) • [🤝 Contributing](#-contributing)\n\n\u003c/div\u003e\n\n---\n\n## 🚀 Quick Start\n\n### 📦 One-Click Installation\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🪟 Windows Users\u003c/b\u003e\u003c/summary\u003e\n\n```batch\n# Download and extract the project\n# Double-click run.bat\n# Browser opens automatically - You're ready! 🎉\n```\n\n**Requirements:** Python 3.8+ (auto-installed if missing)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🐧 Linux/macOS Users\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Clone repository\ngit clone https://github.com/yadavnikhil03/lan-dropspot.git\ncd lan-dropspot\n\n# One-line setup\nchmod +x run.sh \u0026\u0026 ./run.sh\n```\n\n**Requirements:** Python 3.8+, pip\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🐳 Docker Deployment\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Pull and run\ndocker run -p 8000:8000 -v $(pwd)/uploads:/app/uploads yadavnikhil03/lan-dropspot\n\n# Or with docker-compose\ndocker-compose up -d\n```\n\n\u003c/details\u003e\n\n---\n\n## 📖 Documentation\n\n### 🏗️ Architecture Overview\n\n```mermaid\ngraph TB\n    A[Client Browser] --\u003e|WebSocket| B[FastAPI Server]\n    B --\u003e C[File Storage]\n    B --\u003e D[QR Generator]\n    E[Mobile Device] --\u003e|Scan QR| A\n    F[Other Devices] --\u003e|HTTP API| B\n```\n\n---\n\n## 🛠️ API Reference\n\n### 📡 REST Endpoints\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📤 File Upload\u003c/b\u003e\u003c/summary\u003e\n\n```http\nPOST /api/upload\nContent-Type: multipart/form-data\n\n# Request\nfiles: \u003cfile1\u003e, \u003cfile2\u003e, ...\n\n# Response\n{\n  \"files\": [\n    {\n      \"id\": \"uuid-string\",\n      \"name\": \"document.pdf\",\n      \"size\": 1024576,\n      \"expires_at\": \"2025-01-14T15:30:00Z\"\n    }\n  ]\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📋 List Files\u003c/b\u003e\u003c/summary\u003e\n\n```http\nGET /api/files\n\n# Response\n{\n  \"files\": [...],\n  \"total\": 5,\n  \"server_ip\": \"192.168.1.100\"\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e⬇️ Download File\u003c/b\u003e\u003c/summary\u003e\n\n```http\nGET /api/download/{file_id}\n\n# Response: File stream with appropriate headers\nContent-Disposition: attachment; filename=\"document.pdf\"\nContent-Type: application/pdf\n```\n\n\u003c/details\u003e\n\n### 🔌 WebSocket Events\n\n```javascript\n// Connection events\nws.onmessage = (event) =\u003e {\n  const data = JSON.parse(event.data);\n  \n  switch(data.type) {\n    case 'file_uploaded':   // New file available\n    case 'file_downloaded': // File access logged\n    case 'file_expired':    // File auto-removed\n    case 'server_status':   // Server health update\n  }\n}\n```\n\n---\n\n## ⚙️ Configuration\n\n### 🔧 Environment Variables\n\n```bash\n# Server Configuration\nexport LAN_DROPSPOT_PORT=8000\nexport LAN_DROPSPOT_HOST=0.0.0.0\nexport LAN_DROPSPOT_DEBUG=false\n\n# File Management\nexport FILE_EXPIRY_MINUTES=30\nexport MAX_FILE_SIZE_MB=100\nexport CLEANUP_INTERVAL_MINUTES=30\n\n# Security\nexport ENABLE_CORS=true\nexport ALLOWED_ORIGINS=\"*\"\n```\n\n### 📝 Configuration File\n\n```yaml\n# config.yaml\nserver:\n  host: \"0.0.0.0\"\n  port: 8000\n  debug: false\n\nfiles:\n  expiry_minutes: 30\n  max_size_mb: 100\n  cleanup_interval: 30\n  storage_path: \"./uploads\"\n\nsecurity:\n  cors_enabled: true\n  allowed_origins: [\"*\"]\n  rate_limiting: true\n```\n\n---\n\n## 🧪 Development\n\n### 🔨 Setup Development Environment\n\n```bash\n# Clone repository\ngit clone https://github.com/yadavnikhil03/lan-dropspot.git\ncd lan-dropspot\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # Linux/macOS\n# venv\\Scripts\\activate   # Windows\n\n# Install dependencies\npip install -r requirements-dev.txt\n\n# Run in development mode\nuvicorn backend.main:app --reload --host 0.0.0.0 --port 8000\n```\n\n### 🧪 Testing\n\n```bash\n# Run test suite\npytest tests/ -v\n\n# Coverage report\npytest --cov=backend tests/\n\n# Load testing\nlocust -f tests/load_test.py --host=http://localhost:8000\n```\n\n### 📊 Performance Monitoring\n\n```bash\n# Memory usage\npython -m memory_profiler backend/main.py\n\n# Profile API endpoints\npython -m cProfile -o profile.stats backend/main.py\n```\n\n---\n\n## 🚀 Deployment\n\n### 🌐 Production Deployment\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🐳 Docker Production\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Build production image\ndocker build -t lan-dropspot:production .\n\n# Deploy with docker-compose\ndocker-compose -f docker-compose.prod.yml up -d\n\n# Scale horizontally\ndocker-compose up --scale app=3\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e☁️ Cloud Deployment\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# AWS ECS\naws ecs create-cluster --cluster-name lan-dropspot\naws ecs register-task-definition --cli-input-json file://task-definition.json\n\n# Kubernetes\nkubectl apply -f k8s/\nkubectl get services lan-dropspot\n```\n\n\u003c/details\u003e\n\n### 📈 Monitoring \u0026 Logging\n\n```bash\n# Health check endpoint\ncurl http://localhost:8000/health\n\n# Metrics (Prometheus format)\ncurl http://localhost:8000/metrics\n\n# Logs\ndocker logs lan-dropspot --follow\n```\n---\n\n## 🤝 Contributing\n\n### 🌟 How to Contribute\n\n1. **🍴 Fork** the repository\n2. **🌿 Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **💻 Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **📤 Push** to the branch (`git push origin feature/amazing-feature`)\n5. **🎯 Open** a Pull Request\n\n### 📋 Development Guidelines\n\n- Follow [PEP 8](https://pep8.org/) for Python code\n- Write comprehensive tests for new features\n- Update documentation for any API changes\n- Use conventional commits for clear history\n\n---\n\n## 🆘 Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🔧 Common Issues\u003c/b\u003e\u003c/summary\u003e\n\n### Server Won't Start\n```bash\n# Check Python version\npython --version  # Should be 3.8+\n\n# Verify port availability\nnetstat -tulpn | grep 8000\n\n# Install dependencies\npip install -r requirements.txt\n```\n\n### Network Access Issues\n```bash\n# Check firewall\nsudo ufw allow 8000  # Linux\nnetsh advfirewall firewall add rule name=\"LAN DropSpot\" dir=in action=allow protocol=TCP localport=8000  # Windows\n\n# Verify network interface\nip addr show  # Linux\nipconfig  # Windows\n```\n\n\u003c/details\u003e\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n```\nMIT License\n\nCopyright (c) 2025 Nikhil Yadav\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n```\n\n---\n\n## � Support\n\n\u003cdiv align=\"center\"\u003e\n\n### Show Your Support\n\n⭐ **Star this repository** if you found it helpful!\n\n[![GitHub stars](https://img.shields.io/github/stars/yadavnikhil03/LAN-DropSpot?style=social)](https://github.com/yadavnikhil03/LAN-DropSpot)\n[![GitHub forks](https://img.shields.io/github/forks/yadavnikhil03/LAN-DropSpot?style=social)](https://github.com/yadavnikhil03/LAN-DropSpot)\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🚀 Made with ❤️ by [Nikhil Yadav](https://github.com/yadavnikhil03)**\n\n![Footer](https://img.shields.io/badge/LAN%20DropSpot-Changing%20the%20game-success?style=for-the-badge)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyadavnikhil03%2Flan-dropspot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyadavnikhil03%2Flan-dropspot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyadavnikhil03%2Flan-dropspot/lists"}