{"id":31583026,"url":"https://github.com/prasanthsasikumar/icehub","last_synced_at":"2026-04-07T22:31:37.693Z","repository":{"id":308651033,"uuid":"1031174962","full_name":"prasanthsasikumar/icehub","owner":"prasanthsasikumar","description":"Modern participant community platform built 100% with GitHub Copilot. Features profiles, skills, real-time chat, teams \u0026 mentoring. Nuxt.js + Supabase + Vercel. Total cost: $11. Showcases the power of AI-assisted development.","archived":false,"fork":false,"pushed_at":"2025-08-14T14:10:08.000Z","size":49720,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T23:57:15.129Z","etag":null,"topics":["authentication","copilot","full-stack","low-cost","nuxt","real-time-chat","supabase","tailwind","team-management","typescript","user-profiles","vercel","vibe-coding","vue"],"latest_commit_sha":null,"homepage":"https://ice2025.com/","language":"Vue","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/prasanthsasikumar.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-08-03T07:07:31.000Z","updated_at":"2025-08-14T14:10:12.000Z","dependencies_parsed_at":"2025-08-07T05:41:27.638Z","dependency_job_id":null,"html_url":"https://github.com/prasanthsasikumar/icehub","commit_stats":null,"previous_names":["prasanthsasikumar/icehub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prasanthsasikumar/icehub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasanthsasikumar%2Ficehub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasanthsasikumar%2Ficehub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasanthsasikumar%2Ficehub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasanthsasikumar%2Ficehub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prasanthsasikumar","download_url":"https://codeload.github.com/prasanthsasikumar/icehub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasanthsasikumar%2Ficehub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31532199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["authentication","copilot","full-stack","low-cost","nuxt","real-time-chat","supabase","tailwind","team-management","typescript","user-profiles","vercel","vibe-coding","vue"],"created_at":"2025-10-05T23:57:13.090Z","updated_at":"2026-04-07T22:31:37.670Z","avatar_url":"https://github.com/prasanthsasikumar.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ICEHub - Workshop Collaboration Platform\n\nA modern, full-stack web application built with Nuxt 3 for managing workshop participants, teams, and real-time collaboration.\n\n## ✨ Features\n\n### Core Features\n- **👤 User Management**: Complete authentication system with role-based access (participants, mentors, admins)\n- **👥 Team Collaboration**: Create and manage teams with links, images, and member management\n- **💬 Real-time Chat**: Direct messaging between participants and mentors with WebSocket support\n- **📢 Announcements**: Admin-managed announcement system with different priority levels\n- **🎯 Skills Tracking**: Advanced skill categorization and expertise matching\n\n### Interactive Features\n- **🏢 3D Venue Viewer**: Interactive 3D visualization of workshop venues using Three.js\n- **📱 Responsive Design**: Fully optimized for desktop, tablet, and mobile devices\n- **🔍 Advanced Search**: Find participants by skills, expertise, or team affiliations\n- **📊 Analytics Dashboard**: Comprehensive admin panel with user and team statistics\n\n### Technical Features\n- **🔒 Secure Authentication**: JWT-based auth with Row Level Security\n- **📤 File Upload**: Image upload with Google Drive integration support\n- **⚡ Real-time Updates**: WebSocket integration for instant messaging\n- **🎨 Modern UI**: Beautiful, accessible interface with Tailwind CSS\n\n## 🛠 Tech Stack\n\n- **Frontend**: Nuxt 3, Vue 3, TypeScript\n- **Styling**: Tailwind CSS with custom components\n- **3D Graphics**: Three.js with GLTFLoader for venue visualization\n- **Backend**: Nuxt server API routes with middleware\n- **Database**: Supabase (PostgreSQL) with Row Level Security\n- **Authentication**: Custom JWT-based auth system\n- **Real-time**: WebSocket integration with fallback polling\n- **File Storage**: Local upload with optional Vercel Blob integration\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 18+ \n- npm or yarn\n- Supabase account\n\n### Installation\n\n1. **Clone the repository:**\n```bash\ngit clone \u003cyour-repo-url\u003e\ncd icehub\n```\n\n2. **Install dependencies:**\n```bash\nnpm install\n```\n\n3. **Environment setup:**\n```bash\ncp .env.example .env\n```\n\nFill in your environment variables:\n```env\n# Supabase Configuration\nSUPABASE_URL=your_supabase_project_url\nSUPABASE_ANON_KEY=your_supabase_anon_key\nSUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key\n\n# JWT Secret (use a secure random string)\nJWT_SECRET=your_secure_random_jwt_secret\n\n# Optional: Enhanced file uploads\nBLOB_READ_WRITE_TOKEN=your_vercel_blob_token\n```\n\n4. **Database setup:**\n```bash\n# In your Supabase SQL Editor, run the complete setup:\n# Copy and paste the entire contents of database-setup.sql\n```\n\n5. **Start development server:**\n```bash\nnpm run dev\n```\n\nVisit `http://localhost:3000` to see your application!\n\n## 📊 Database Setup\n\nThe application uses a single, comprehensive SQL script for complete database setup:\n\n1. Open your **Supabase Dashboard**\n2. Navigate to **SQL Editor**\n3. Copy the entire contents of `database-setup.sql`\n4. Execute the script\n\nThis creates:\n- ✅ All required tables with proper relationships\n- ✅ Optimized indexes for performance\n- ✅ Row Level Security policies\n- ✅ Database functions and triggers\n- ✅ Proper constraints and data validation\n\n## 👥 User Roles \u0026 Permissions\n\n### Participants\n- Create and manage personal profiles\n- Join and create teams\n- Send direct messages\n- View announcements\n- Access 3D venue viewer\n\n### Mentors\n- Enhanced profile display with mentor badge\n- All participant permissions\n- Mentor-specific UI indicators\n- Priority in search results\n\n### Admins\n- Full system access\n- User management capabilities\n- Announcement creation and management\n- System backup and analytics\n- Team and content moderation\n\n## 🏗 Project Structure\n\n```\nicehub/\n├── 📁 components/           # Reusable Vue components\n│   ├── Announcements.vue    # Announcement display\n│   ├── Footer.vue          # Site footer\n│   └── ImageUpload.vue     # File upload component\n├── 📁 composables/         # Vue composables\n│   └── useAuth.ts          # Authentication logic\n├── 📁 pages/              # Application routes\n│   ├── 📁 admin/          # Admin panel pages\n│   ├── 📁 profile/        # User profile pages\n│   ├── 📁 teams/          # Team management pages\n│   ├── chat.vue           # Messaging interface\n│   ├── venue.vue          # 3D venue viewer\n│   └── index.vue          # Homepage\n├── 📁 server/             # API routes and logic\n│   └── 📁 api/            # REST API endpoints\n├── 📁 assets/             # Styles and static assets\n├── 📁 public/             # Public files and uploads\n├── database-setup.sql     # Complete database schema\n├── .env.example           # Environment template\n└── README.md             # This file\n```\n\n## 🔧 Key API Endpoints\n\n### Authentication\n- `POST /api/auth/register` - User registration\n- `POST /api/auth/login` - User login\n- `GET /api/auth/me` - Get current user\n\n### Users \u0026 Teams\n- `GET /api/users` - List all users\n- `GET /api/teams` - List all teams\n- `POST /api/teams` - Create new team\n- `GET /api/teams/[id]` - Get team details\n\n### Messaging\n- `GET /api/messages` - Get user messages\n- `POST /api/messages` - Send new message\n- `PUT /api/messages/[id]` - Mark message as read\n\n### Admin\n- `GET /api/announcements` - List announcements\n- `POST /api/announcements` - Create announcement\n- `GET /api/admin/stats` - System statistics\n\n## 🚀 Deployment\n\n### Build for Production\n```bash\nnpm run build\nnpm run start\n```\n\n### Environment Variables for Production\nEnsure all environment variables are configured:\n- ✅ Database credentials\n- ✅ JWT secrets  \n- ✅ File upload tokens\n- ✅ CORS settings\n\n### Recommended Platforms\n- **Vercel** (Recommended)\n- **Netlify**\n- **Railway**\n- **DigitalOcean App Platform**\n\n### Deployment Checklist\n- [ ] Environment variables configured\n- [ ] Database schema deployed\n- [ ] File upload storage configured\n- [ ] Domain and SSL configured\n- [ ] Error monitoring setup\n\n## 🔒 Security Features\n\n- **Row Level Security**: Database-level access control\n- **JWT Authentication**: Secure token-based auth\n- **Input Validation**: Server-side data validation\n- **CORS Configuration**: Proper cross-origin settings\n- **Rate Limiting**: API endpoint protection\n- **File Upload Security**: Safe file handling\n\n## 📱 Mobile Optimization\n\n- **Responsive Design**: Works on all screen sizes\n- **Touch Optimized**: Mobile-friendly interactions\n- **Progressive Loading**: Optimized for slower connections\n- **Offline Indicators**: Clear connection status\n- **Mobile Navigation**: Collapsible menu system\n\n## 🎨 Customization\n\n### Theming\nThe application uses CSS custom properties for easy theming:\n```css\n:root {\n  --color-primary: #0d7ae4;\n  --color-primary-hover: #0969da;\n  /* Add your custom colors */\n}\n```\n\n### Component Styling\nAll components use Tailwind CSS with custom utility classes defined in `assets/css/main.css`.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n### Development Guidelines\n- Follow Vue 3 Composition API patterns\n- Use TypeScript for type safety\n- Maintain responsive design principles\n- Include error handling\n- Write meaningful commit messages\n\n## 📞 Support\n\nFor questions, issues, or contributions:\n- 📧 Open an issue in this repository\n- 📖 Check the documentation in `/docs`\n- 💬 Join our community discussions\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n---\n\n**Built with ❤️ for the ICE2025 Workshop Community**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprasanthsasikumar%2Ficehub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprasanthsasikumar%2Ficehub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprasanthsasikumar%2Ficehub/lists"}