{"id":28301535,"url":"https://github.com/ogc1/urlshield","last_synced_at":"2025-10-19T00:32:01.252Z","repository":{"id":294804483,"uuid":"450354699","full_name":"ogc1/URLShield","owner":"ogc1","description":"Advanced URL shortener with browser fingerprinting, device profiling \u0026 geolocation tracking","archived":false,"fork":false,"pushed_at":"2025-05-24T20:02:27.000Z","size":533,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T03:46:44.947Z","etag":null,"topics":["express","nodejs","postgresql","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ogc1.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":"2022-01-21T04:37:53.000Z","updated_at":"2025-05-31T03:05:49.000Z","dependencies_parsed_at":"2025-05-22T06:37:40.576Z","dependency_job_id":null,"html_url":"https://github.com/ogc1/URLShield","commit_stats":null,"previous_names":["ogc1/urlshield"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ogc1/URLShield","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogc1%2FURLShield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogc1%2FURLShield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogc1%2FURLShield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogc1%2FURLShield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ogc1","download_url":"https://codeload.github.com/ogc1/URLShield/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogc1%2FURLShield/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271760492,"owners_count":24816430,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["express","nodejs","postgresql","react"],"created_at":"2025-05-23T20:11:37.345Z","updated_at":"2025-10-19T00:32:00.893Z","avatar_url":"https://github.com/ogc1.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URLShield\n\n![URLShield](https://img.shields.io/badge/URLShield-Secure%20URL%20Shortener-blue)\n![Version](https://img.shields.io/badge/version-1.0.0-green)\n![License](https://img.shields.io/badge/license-ISC-yellow)\n\n**URLShield** is a feature-rich, secure URL shortener with comprehensive analytics and advanced security monitoring capabilities. Built with modern web technologies, it provides detailed insights into link usage while maintaining user privacy and security.\n\n## 🚀 Features\n\n### Core Functionality\n- **Secure URL Shortening**: Generate short, memorable links for any URL\n- **Link Expiration**: Set custom expiration dates for temporary links\n- **User Authentication**: Account-based link management and tracking\n- **Session Management**: Secure session handling with cookie-based authentication\n\n### Advanced Analytics\n- **Real-time Click Tracking**: Monitor link clicks with timestamp precision\n- **Geolocation Intelligence**: Track visitor location down to city level with timezone support\n- **Device \u0026 Browser Analytics**: Comprehensive client environment detection\n- **Network Security Analysis**: VPN, proxy, and Tor detection for enhanced security\n- **Visitor Fingerprinting**: Anonymous visitor identification and tracking\n\n### Security Features\n- **IP Address Monitoring**: Track and analyze visitor IP addresses\n- **Security Threat Detection**: Identify VPN, proxy, and Tor usage\n- **Input Sanitization**: Protection against malicious input\n- **Encrypted Password Storage**: Secure user authentication with bcrypt\n\n## 🛠️ Technology Stack\n\n### Frontend\n- **React 17** - Modern UI library\n- **React Router DOM** - Client-side routing\n- **Webpack 5** - Module bundling and development server\n- **CSS3** - Custom styling\n\n### Backend\n- **Node.js** - Server runtime\n- **Express.js** - Web application framework\n- **PostgreSQL** - Relational database\n- **bcrypt** - Password hashing\n- **UUID** - Unique identifier generation\n\n### Analytics \u0026 APIs\n- **IPStack API** - Geolocation and network information\n- **VPN Detection API** - Security threat analysis\n- **Custom Analytics Engine** - Real-time data processing\n\n## 📊 Analytics Dashboard\n\nURLShield provides comprehensive analytics through multiple data layers:\n\n- **Basic Logs**: IP addresses, timestamps, and basic tracking\n- **Location Logs**: Country, region, city, timezone, and coordinates\n- **Client Logs**: Browser, OS, device, screen resolution, and hardware specs\n- **Network Logs**: ISP information, connection type, and security analysis\n- **Session Logs**: User session tracking and account association\n\n## 🚦 Getting Started\n\n### Prerequisites\n- Node.js (v14 or higher)\n- PostgreSQL (v12 or higher)\n- npm or yarn package manager\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/your-username/URLShield.git\n   cd URLShield\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Database Setup**\n   ```bash\n   # Create your PostgreSQL database\n   createdb urlshield\n   \n   # Run the database schema\n   psql urlshield \u003c scripts.sql\n   ```\n\n4. **Environment Configuration**\n   Create a `.env` file in the root directory:\n   ```env\n   DB_HOST=localhost\n   DB_PORT=5432\n   DB_NAME=urlshield\n   DB_USER=your_username\n   DB_PASSWORD=your_password\n   IPSTACK_API_KEY=your_ipstack_key\n   VPN_API_KEY=your_vpn_detection_key\n   ```\n\n5. **Start the application**\n   ```bash\n   # Development mode\n   npm run build    # Build frontend assets\n   npm start        # Start webpack dev server\n   \n   # Production mode\n   node server/server.js\n   ```\n\n## 📖 API Documentation\n\n### URL Management\n- `POST /api/shorten` - Create a new short URL\n- `GET /api/:shortUrl` - Retrieve URL information\n- `GET /api/:shortUrl/analytics` - Get basic analytics\n- `GET /api/:shortUrl/extended-analytics` - Get comprehensive analytics\n\n### User Management\n- `POST /api/auth/register` - Create new user account\n- `POST /api/auth/login` - User authentication\n- `GET /api/user/links` - Get user's created links\n\n## 🔒 Privacy \u0026 Security\n\nURLShield is designed with privacy and security in mind:\n\n- **Data Encryption**: All sensitive data is encrypted\n- **Anonymous Tracking**: Visitor analytics don't store personally identifiable information\n- **Secure Sessions**: Cookie-based authentication with secure flags\n- **Input Validation**: All inputs are sanitized and validated\n- **SQL Injection Protection**: Parameterized queries prevent SQL injection\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these steps:\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## 📄 License\n\nThis project is licensed under the ISC License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\nIf you encounter any issues or have questions:\n\n1. Check the [Issues](https://github.com/your-username/URLShield/issues) page\n2. Create a new issue with detailed information\n3. Contact the development team\n\n## 🎯 Roadmap\n\n- [ ] Real-time analytics dashboard\n- [ ] API rate limiting\n- [ ] Bulk URL shortening\n- [ ] Custom domain support\n- [ ] Advanced user roles and permissions\n- [ ] Integration with popular analytics platforms\n\n---\n\n**URLShield** - Secure, intelligent URL shortening for the modern web.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogc1%2Furlshield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fogc1%2Furlshield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogc1%2Furlshield/lists"}