{"id":29013240,"url":"https://github.com/par-zeus/juntopia","last_synced_at":"2026-04-08T18:01:26.882Z","repository":{"id":300893940,"uuid":"1004499838","full_name":"Par-zeus/Juntopia","owner":"Par-zeus","description":"A language learning platform, Juntopia which evolved into a seamless communication space focused on real-time conversation, video calling, and community interaction — all essential to immersive language practice. It's a place where users can connect, speak, and learn together","archived":false,"fork":false,"pushed_at":"2025-06-24T05:03:25.000Z","size":6474,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T23:52:38.139Z","etag":null,"topics":["daisyui-react","express-js","javascript","lucide-icons","mongodb-database","nodejs","react-hot-toast","reactjs","stream-chat-react","stream-video","tailwind-css","zustand-state-management"],"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/Par-zeus.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-06-18T18:08:42.000Z","updated_at":"2025-06-24T05:03:28.000Z","dependencies_parsed_at":"2025-06-24T06:35:08.514Z","dependency_job_id":null,"html_url":"https://github.com/Par-zeus/Juntopia","commit_stats":null,"previous_names":["par-zeus/juntopia"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Par-zeus/Juntopia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Par-zeus%2FJuntopia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Par-zeus%2FJuntopia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Par-zeus%2FJuntopia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Par-zeus%2FJuntopia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Par-zeus","download_url":"https://codeload.github.com/Par-zeus/Juntopia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Par-zeus%2FJuntopia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"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":["daisyui-react","express-js","javascript","lucide-icons","mongodb-database","nodejs","react-hot-toast","reactjs","stream-chat-react","stream-video","tailwind-css","zustand-state-management"],"created_at":"2025-06-25T19:10:31.133Z","updated_at":"2026-04-08T18:01:26.862Z","avatar_url":"https://github.com/Par-zeus.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌐 Juntopia — Real-Time Chat \u0026 Language Learning Utopia\n\n**Juntopia** is derived from two words:  \n- **Junto** (Spanish): *Together*  \n- **Utopia** (Greek): *An ideal place*  \n\nOriginally envisioned as a **language learning platform**, Juntopia evolved into a seamless communication space focused on **real-time conversation**, **video calling**, and **community interaction** — all essential to immersive language practice. It's a place where users can **connect, speak, and learn** together.\n\n---\n\n## 📸 Preview\n\n\n| Chat UI | Video Call |\n|--------|-------------|\n| ![image](https://github.com/user-attachments/assets/33fab950-0db9-44b0-8fa5-a0ce5f8330ca) | ![image](https://github.com/user-attachments/assets/6ff09fad-56d4-4a35-ae38-3a6b6ee95879) |\n\n\n![HomePage](https://github.com/user-attachments/assets/ca0596bd-f491-44c8-ac96-fbd730a89e23)\n![Notofications UI](https://github.com/user-attachments/assets/0f457e38-b3c9-4a53-b47d-17cd4f94bd28)\n\n---\n\n\n## 🚀 Features\n\n- 💬 Real-time messaging using Stream Chat SDK\n- 📞 One-on-one video calling powered by Stream Video SDK\n- 🧑‍🤝‍🧑 Friend requests (accept/reject)\n- 🔁 Threaded replies \u0026 reactions\n- ✍️ Typing indicators \u0026 presence updates\n- 🎨 32+ dynamic themes with DaisyUI\n- 🔔 Toast notifications for actions/events\n- 🧠 State management with Zustand\n- 💡 Theme persistence with localStorage\n- 🔐 Login authentication via token system\n\n---\n\n## ⚙️ Tech Stack\n\n**Frontend**: React 19, Vite, TailwindCSS, DaisyUI, Zustand, React Query, React Router 7  \n**Realtime Infra**: Stream Chat SDK, Stream Video SDK  \n**UI Tools**: Lucide Icons, React Hot Toast\n\n\u003e No socket.io, no manual WebRTC — Stream handles it all\n\n---\n\n\n---\n\n## 🛠️ Getting Started (Installation \u0026 Setup)\n\n### ✅ 1. Clone the Repository\n\n```bash\ngit clone https://github.com/your-username/juntopia.git\ncd juntopia\n```\n\n### ✅ 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### ✅ 3. Configure Environment Variables\n\nCreate a `.env` file in the root directory and add:\n\n```env\nVITE_STREAM_API_KEY=your_stream_api_key\nVITE_STREAM_SECRET_KEY=your_user_token\n```\n\n\u003e 🔐 Get your API keys from https://getstream.io/dashboard\n\n---\n\n## ▶️ Run the App Locally\n\n```bash\nnpm run dev\n```\n\nVisit `http://localhost:5173` in your browser.\n\n---\n\n## 🚀 Deployment\n\n- Push to GitHub\n- Deploy using Vercel or Netlify\n- Add the same `.env` variables in the platform settings\n- Done 🎉\n\n---\n\n## 🌈 Theme System\n\nJuntopia includes **32+ prebuilt themes** via DaisyUI:  \n`light`, `dark`, `cupcake`, `dracula`, `luxury`, `cyberpunk`, `aqua`, `forest`, `valentine`, `retro`, and more!\n\nThemes are persisted with `localStorage`. Customize in `tailwind.config.js`:\n\n```js\ndaisyui: {\n  themes: [\"light\", \"dark\", \"cupcake\", \"dracula\", \"luxury\", \"forest\"]\n}\n```\n\n---\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpar-zeus%2Fjuntopia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpar-zeus%2Fjuntopia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpar-zeus%2Fjuntopia/lists"}