{"id":27968896,"url":"https://github.com/jakh0n/hacathonn","last_synced_at":"2026-04-26T20:32:04.281Z","repository":{"id":291060061,"uuid":"976444072","full_name":"Jakh0n/hacathonn","owner":"Jakh0n","description":"🌟 A multi-tenant SaaS admin panel built with Next.js and Express.js, featuring dynamic theme switching, real-time chat, notifications, and responsive design for mobile and desktop. 🚀 Deployed on Vercel and Render.","archived":false,"fork":false,"pushed_at":"2025-05-06T01:39:06.000Z","size":337,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T18:30:37.289Z","etag":null,"topics":["express","nextjs","nodejs","tailwindcss","typescript","websocket"],"latest_commit_sha":null,"homepage":"https://hacathon-frontend-neon.vercel.app/","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/Jakh0n.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-05-02T05:48:35.000Z","updated_at":"2025-05-06T01:42:12.000Z","dependencies_parsed_at":"2025-05-07T21:07:39.598Z","dependency_job_id":null,"html_url":"https://github.com/Jakh0n/hacathonn","commit_stats":null,"previous_names":["jakh0n/hacathonn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jakh0n/hacathonn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakh0n%2Fhacathonn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakh0n%2Fhacathonn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakh0n%2Fhacathonn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakh0n%2Fhacathonn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jakh0n","download_url":"https://codeload.github.com/Jakh0n/hacathonn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jakh0n%2Fhacathonn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"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":["express","nextjs","nodejs","tailwindcss","typescript","websocket"],"created_at":"2025-05-07T21:07:38.953Z","updated_at":"2026-04-26T20:32:04.276Z","avatar_url":"https://github.com/Jakh0n.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌟 Multi-Tenant SaaS Admin Panel\n\nWelcome to our **SaaS Hackathon Project** — a dynamic, multi-tenant admin panel with a modern tech stack! This platform provides a seamless, personalized experience for each tenant and includes:\n\n## ✨ Features\n\n- 🎨 **Theme switching**: Light/Dark mode per tenant\n- 🔧 **Feature toggles**: Enable/disable modules like Real-Time Chat\n- ⚡ **Real-time notifications**: Built using Socket.IO\n- 📱 **Fully responsive**: Mobile and desktop ready\n- 🔐 **Tenant isolation**: No config leaks between tenants\n\n---\n\n## 📸 Live Demo\n\n🔗 [Frontend on Vercel](https://hacathon-frontend-neon.vercel.app)\n\nTry it on mobile or desktop:\n1. Visit the link.\n2. Choose a tenant (`Tenant 1` or `Tenant 2`).\n3. Click **Load**.\n4. Watch the dashboard adapt in real time! 🚀\n\n---\n\n## 🧪 Test Cases\n\n### ✅ Tenant 1 (Mobile View)\n- **Light theme**\n- **Chat module enabled**\n- **Notification popup**: \"Welcome to Tenant 1!\"\n- **Info**: `tenant1.example.com`\n\n### ✅ Tenant 2 (Mobile View)\n- **Dark theme**\n- **Chat module disabled**\n- **No popup**\n- **Info**: `tenant2.example.com`\n\n### 🔄 Tenant Switching\n- Switch between tenants with no data/config leaks.\n- UI updates correctly with each tenant’s preferences.\n\n---\n\n## 🛠️ Tech Stack\n\n| Component  | Technology                  |\n|------------|-----------------------------|\n| Frontend   | Next.js, React, Shadcn UI, Typescript              |\n| Backend    | Node js, Express.js                  |\n| Real-Time  | WebSocket (Socket.IO)       |\n| Deployment | Vercel (Frontend), Render (Backend) |\n\n---\n\n## 🚀 Local Setup\n\n```bash\n\ncd frontend\nnpm install\n# Add .env.local\necho \"NEXT_PUBLIC_API_URL=http://localhost:3001\" \u003e .env.local\necho \"NEXT_PUBLIC_WEBSOCKET_URL=http://localhost:3001\" \u003e\u003e .env.local\nnpm run dev\n\ncd server\nnpm install\n# Add .env file\necho \"ALLOWED_ORIGIN=https://hacathon-frontend-neon.vercel.app\" \u003e .env\nnpm start\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakh0n%2Fhacathonn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakh0n%2Fhacathonn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakh0n%2Fhacathonn/lists"}