A distraction-free, calm & collaborative video meeting platform built with React, Node.js, Socket.IO, and WebRTC.
Amigo is a full-stack video conferencing web application designed to reduce meeting fatigue and help teams collaborate effectively. It supports HD video calls, real-time chat, screen sharing, meeting scheduling, session recording, and team management β all in a clean, warm UI.
- π₯ HD Video Calls β Peer-to-peer WebRTC video with adaptive quality
- π¬ In-Room Chat β Real-time messaging during meetings via Socket.IO
- π₯οΈ Screen Sharing β Share your full screen or a specific window
- π Meeting Scheduling β Schedule meetings with date, time and participant management
- πΌ Session Recording β Record meetings locally and save metadata to the server
- π₯ Team Management β Create and manage team members
- π Authentication β Secure JWT-based auth with HTTP-only cookies
- π€ User Profile & Settings β Update personal info and preferences
- π Dashboard β Overview of upcoming meetings, history, and quick actions
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, React Router v6 |
| Realtime | Socket.IO (WebRTC signaling + chat) |
| Video | WebRTC (native browser APIs) |
| Backend | Node.js, Express.js |
| Database | PostgreSQL via Sequelize ORM |
| Auth | JWT, HTTP-only cookies, bcrypt |
| Deployment | Vercel (frontend), Render/Railway (backend) |
Amigo/
βββ amigo-frontend/ # React + Vite frontend
β βββ src/
β β βββ components/ # Reusable UI components (Header, AuthForm, ProtectedRouteβ¦)
β β βββ context/ # AuthContext β global auth state
β β βββ pages/ # Route-level page components
β β βββ services/ # API client (api.js)
β β βββ design-tokens.js
β βββ README.md
β
βββ amigo-backend/ # Express + Socket.IO backend
β βββ api/
β β βββ models/ # Sequelize models
β β βββ routes/ # REST API route handlers
β β βββ controllers/ # Business logic
β βββ utils/
β βββ server.js # Express app + Socket.IO signaling
β βββ README.md
β
βββ README.md # β You are here
- Node.js v18+
- PostgreSQL database
- npm or yarn
git clone https://github.com/Ravindu56/Amigo.git
cd Amigocd amigo-backend
npm install
cp .env.example .env
# Fill in your .env values (see Environment Variables below)
npm run devcd amigo-frontend
npm install
cp .env.example .env
# Fill in your .env values
npm run devThe frontend runs on http://localhost:5173 and the backend on http://localhost:5000.
See amigo-backend/.env.example and amigo-frontend for all required variables. Key ones:
| Variable | Where | Description |
|---|---|---|
DATABASE_URL |
backend | PostgreSQL connection string |
JWT_SECRET |
backend | Secret key for signing JWTs |
FRONTEND_URL |
backend | Allowed CORS origin (your frontend URL) |
VITE_API_URL |
frontend | Backend API base URL |
VITE_SOCKET_SERVER |
frontend | Socket.IO server URL |
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature - Open a Pull Request
Made with πΏ by the Amigo team