https://github.com/par-zeus/juntopia
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
https://github.com/par-zeus/juntopia
daisyui-react express-js javascript lucide-icons mongodb-database nodejs react-hot-toast reactjs stream-chat-react stream-video tailwind-css zustand-state-management
Last synced: about 1 month ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/par-zeus/juntopia
- Owner: Par-zeus
- Created: 2025-06-18T18:08:42.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-06-24T05:03:25.000Z (8 months ago)
- Last Synced: 2025-06-24T06:24:23.334Z (8 months ago)
- 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
- Language: JavaScript
- Homepage:
- Size: 6.17 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌐 Juntopia — Real-Time Chat & Language Learning Utopia
**Juntopia** is derived from two words:
- **Junto** (Spanish): *Together*
- **Utopia** (Greek): *An ideal place*
Originally 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.
---
## 📸 Preview
| Chat UI | Video Call |
|--------|-------------|
|  |  |


---
## 🚀 Features
- 💬 Real-time messaging using Stream Chat SDK
- 📞 One-on-one video calling powered by Stream Video SDK
- 🧑🤝🧑 Friend requests (accept/reject)
- 🔁 Threaded replies & reactions
- ✍️ Typing indicators & presence updates
- 🎨 32+ dynamic themes with DaisyUI
- 🔔 Toast notifications for actions/events
- 🧠 State management with Zustand
- 💡 Theme persistence with localStorage
- 🔐 Login authentication via token system
---
## ⚙️ Tech Stack
**Frontend**: React 19, Vite, TailwindCSS, DaisyUI, Zustand, React Query, React Router 7
**Realtime Infra**: Stream Chat SDK, Stream Video SDK
**UI Tools**: Lucide Icons, React Hot Toast
> No socket.io, no manual WebRTC — Stream handles it all
---
---
## 🛠️ Getting Started (Installation & Setup)
### ✅ 1. Clone the Repository
```bash
git clone https://github.com/your-username/juntopia.git
cd juntopia
```
### ✅ 2. Install Dependencies
```bash
npm install
```
### ✅ 3. Configure Environment Variables
Create a `.env` file in the root directory and add:
```env
VITE_STREAM_API_KEY=your_stream_api_key
VITE_STREAM_SECRET_KEY=your_user_token
```
> 🔐 Get your API keys from https://getstream.io/dashboard
---
## ▶️ Run the App Locally
```bash
npm run dev
```
Visit `http://localhost:5173` in your browser.
---
## 🚀 Deployment
- Push to GitHub
- Deploy using Vercel or Netlify
- Add the same `.env` variables in the platform settings
- Done 🎉
---
## 🌈 Theme System
Juntopia includes **32+ prebuilt themes** via DaisyUI:
`light`, `dark`, `cupcake`, `dracula`, `luxury`, `cyberpunk`, `aqua`, `forest`, `valentine`, `retro`, and more!
Themes are persisted with `localStorage`. Customize in `tailwind.config.js`:
```js
daisyui: {
themes: ["light", "dark", "cupcake", "dracula", "luxury", "forest"]
}
```
---