{"id":30053131,"url":"https://github.com/anshpg/lap-machines","last_synced_at":"2026-04-16T01:33:35.511Z","repository":{"id":304287189,"uuid":"1017538002","full_name":"ANSHPG/Lap-Machines","owner":"ANSHPG","description":"Lap Machines is a sophisticated file management system that enables rapid file uploads and downloads through a modern web interface. Built with a powerful stack of Go, React with TypeScript, and PostgreSQL, this project demonstrates a production-ready application with containerized deployment capabilities.","archived":false,"fork":false,"pushed_at":"2025-07-18T20:23:56.000Z","size":52163,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T11:25:36.336Z","etag":null,"topics":["docker","filepond","golang","nginx-docker","ngrok","postgresql","react","shadcn","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ANSHPG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-10T17:28:56.000Z","updated_at":"2025-07-18T20:23:59.000Z","dependencies_parsed_at":"2025-07-12T06:35:06.753Z","dependency_job_id":null,"html_url":"https://github.com/ANSHPG/Lap-Machines","commit_stats":null,"previous_names":["anshpg/lap-machines"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ANSHPG/Lap-Machines","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANSHPG%2FLap-Machines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANSHPG%2FLap-Machines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANSHPG%2FLap-Machines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANSHPG%2FLap-Machines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ANSHPG","download_url":"https://codeload.github.com/ANSHPG/Lap-Machines/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ANSHPG%2FLap-Machines/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31867711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","filepond","golang","nginx-docker","ngrok","postgresql","react","shadcn","typescript"],"created_at":"2025-08-07T18:52:13.862Z","updated_at":"2026-04-16T01:33:35.484Z","avatar_url":"https://github.com/ANSHPG.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"100\" height=\"75\" alt=\"logo-custom\" style=\"border-radius:10px\" src=\"https://github.com/user-attachments/assets/a533dece-f6bb-49f7-a1ef-e699b54c1c27\" /\u003e \n\n# Lap Machines\n\n\u003cdiv align=\"left\"\u003e\n\n![Version](https://img.shields.io/badge/version-1.0.1-blue.svg?cacheSeconds=2592000)\n![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)\n![Node](https://img.shields.io/badge/Node.js-20.x-green.svg)\n![Go](https://img.shields.io/badge/Go-1.24-blue.svg)\n![React](https://img.shields.io/badge/React-18.x-blue.svg)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-14-blue.svg)\n\n\u003c/div\u003e\n\n## 📊 User Journey in Walthroh\nhttps://github.com/user-attachments/assets/5496dce9-0e8d-400b-9142-f6e21aecc63c\n\n## Server Stills\n\u003cdiv align=\"left\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/9e8f6ff7-8758-4208-bbe4-044d9b097742\" width=\"40%\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/68f7bc56-1187-4512-b845-b57dee87f575\" width=\"40%\" /\u003e\n\u003c/div\u003e\n\n\n\n\n\n## 📋 Table of Contents\n- [Overview](#overview)\n- [⚠️ Important Notice](#important-notice)\n- [🌟 Features](#features)\n- [🔧 Technical Stack](#technical-stack)\n- [🚀 Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation Steps](#installation-steps)\n  - [Configuration](#configuration)\n- [🏗️ Project Structure](#project-structure)\n- [📦 Components Deep Dive](#components-deep-dive)\n- [🔌 API Documentation](#api-documentation)\n- [🗄️ Database Schema](#database-schema)\n- [🛠️ Development Guide](#development-guide)\n- [🚀 Deployment](#deployment)\n- [🔒 Security Considerations](#security-considerations)\n- [🤝 Contributing](#contributing)\n- [📝 License](#license)\n- [👤 Author](#author)\n\n## Overview\n\nLap Machines is a sophisticated file management system that enables rapid file uploads and downloads through a modern web interface. Built with a powerful stack of Go, React with TypeScript, and PostgreSQL, this project demonstrates a production-ready application with containerized deployment capabilities.\n\n## ⚠️ Important Notice\n\n**Mobile Responsiveness**: Please note that this application is currently optimized for desktop use only and is not mobile-responsive. Mobile users may experience layout issues or reduced functionality. Contributors are welcome to fork the project and add mobile responsiveness.\n\n## 🌟 Features\n\n- **Fast File Operations**\n  - Rapid file uploads with progress tracking\n  - Instant downloads with proper content-type handling\n  - Multiple file selection support\n  - Drag and drop interface\n\n- **Smart Storage Management**\n  - Automatic file type detection\n  - File metadata tracking\n  - Storage usage statistics\n  - UUID-based file identification\n\n- **Security Features**\n  - Secure file storage\n  - File type validation\n  - Size limit enforcement\n  - CORS configuration\n\n- **User Interface**\n  - Clean, modern design\n  - Real-time upload progress\n  - File type icons\n  - Sort and filter capabilities\n  - Dark/Light theme support\n\n## 🔧 Technical Stack\n\n### Frontend (Ashyft)\n- React 18.x with TypeScript\n- Vite for build tooling\n- TailwindCSS for styling [If ShadCN fails to set up TailwindCSS properly, switch to this approach](https://tailwindcss.com/docs/installation/using-vite)\n- Shadcn UI components [for vite](https://ui.shadcn.com/docs/installation/vite)\n- File handling libraries [React FilePond](https://www.npmjs.com/package/react-filepond)\n- Nginx for serving static content\n\n### Backend (Go)\n- Go 1.24\n- Standard net/http package\n- PostgreSQL driver\n- File system operations\n- RESTful API design\n\n### Database\n- PostgreSQL 14\n- UUID extension\n- Optimized schema design\n\n### DevOps\n- Docker \u0026 Docker Compose\n- Nginx configuration\n- Environment management\n- Volume persistence\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n1. Install Docker \u0026 Docker Compose\n   ```bash\n   # Verify installations\n   docker --version\n   docker-compose --version\n   ```\n\n2. Ensure ports 5173 (frontend), 8080 (backend), and 5433 (database) are available\n\n3. At least 1GB of free disk space\n\n### Installation Steps\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/ANSHPG/Lap-Machines.git\n   cd Lap-Machines/Production_server\n   ```\n\n2. **Environment Setup**\n   ```bash\n   # Create .env file in Ashyft directory\n   cp Ashyft/.env.example Ashyft/.env\n\n   # Update environment variables if needed\n   ```\n\n3. **Build and Run**\n   ```bash\n   docker-compose up --build\n   ```\n\n4. **Verify Installation**\n   - Frontend: http://localhost:5173\n   - Backend API: http://localhost:8080/health\n   - Database: Port 5433 (use any PostgreSQL client)\n\n### Configuration\n\n#### Frontend Configuration\nFile: `Ashyft/.env`\n```env\nVITE_API_URL=http://localhost:8080\nVITE_MAX_FILE_SIZE=100000000\n```\n\n#### Backend Configuration\nEnvironment variables in docker-compose.yml:\n```yaml\nDB_HOST=db\nDB_USER=postgres\nDB_PASSWORD=your_password\nDB_NAME=file_manager\nPORT=8080\n```\n\n## 🏗️ Project Structure\n\n```\nProduction_server/\n├── Ashyft/                 # Frontend application\n│   ├── src/               # Source code\n│   ├── public/           # Static assets\n│   └── Dockerfile        # Frontend container\n├── Backend/               # Go backend\n│   ├── main.go          # Entry point\n│   └── Dockerfile       # Backend container\n├── Postgres/              # Database\n│   ├── init.sql        # Schema\n│   └── file_manager.md # Documentation\n└── docker-compose.yml    # Container orchestration\n```\n\n## 📦 Components Deep Dive\n\n### Frontend Components\n- **File Uploader**: Handles file selection and upload\n- **File List**: Displays uploaded files with metadata\n- **Storage Stats**: Shows system usage statistics\n- **Theme Switcher**: Manages application theme\n\n### Backend Services\n- **File Handler**: Processes file operations\n- **Database Manager**: Handles data persistence\n- **Stats Collector**: Gathers system statistics\n\n## 🔌 API Documentation\n\n### Endpoints\n\n```\nGET    /api/files       # List all files\nPOST   /api/upload     # Upload new file(s)\nGET    /api/download   # Download a file\nDELETE /api/files/:id  # Delete a file\nGET    /api/stats     # Get storage statistics\n```\n\n## 🗄️ Database Schema\n\n```sql\nCREATE TABLE files (\n    file_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    name TEXT NOT NULL,\n    type TEXT NOT NULL,\n    size BIGINT NOT NULL,\n    location TEXT NOT NULL,\n    uploaded_at TIMESTAMP DEFAULT NOW()\n);\n```\n\n## 🛠️ Development Guide\n\n### Local Development Setup\n\n1. **Frontend Development**\n   ```bash\n   cd Ashyft\n   npm install\n   npm run dev\n   ```\n\n2. **Backend Development**\n   ```bash\n   cd Backend\n   go mod download\n   go run main.go\n   ```\n\n3. **Database Setup**\n   ```bash\n   # See Postgres/file_manager.md for setup instructions\n   ```\n\n### Code Style\n- Frontend: ESLint + Prettier configuration\n- Backend: Go standard formatting\n- SQL: PostgreSQL standard style\n\n## 🚀 Deployment\n\n### Production Deployment Steps\n\n1. Update environment variables\n2. Build images:\n   ```bash\n   docker-compose build\n   ```\n3. Deploy:\n   ```bash\n   docker-compose up -d\n   ```\n\n### Server Requirements\n- 1GB RAM minimum\n- 10GB storage recommended\n- Linux-based OS preferred\n\n## 🔒 Security Considerations\n\n1. File validation on upload\n2. Size limitations\n3. Secure file storage\n4. Database security\n5. API rate limiting (recommended)\n\n## 🤝 Contributing\n\nContributions are welcome! Feel free to:\n\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes\n4. Push to the branch\n5. Open a Pull Request\n\nAreas for improvement:\n- Mobile responsiveness\n- Additional file type support\n- Enhanced security features\n- Performance optimizations\n\n## 📝 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](#LICENSE) file for details.\n\n## 👤 Author\n\n**Anshuman Pattnaik**\n\n- LinkedIn: [@anshphere](https://www.linkedin.com/in/anshphere)\n- GitHub: [@ANSHPG](https://github.com/ANSHPG)\n\n## 💖 Support\n\nIf you find this project useful, please consider giving it a ⭐️ on GitHub!\n\n---\n\n**Note**: For the latest updates and detailed contribution guidelines, please visit the [GitHub repository](https://github.com/ANSHPG/Lap-Machines).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanshpg%2Flap-machines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanshpg%2Flap-machines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanshpg%2Flap-machines/lists"}