diff --git a/README.md b/README.md index 795a0f9..9c45890 100644 --- a/README.md +++ b/README.md @@ -1,293 +1,174 @@ -# Call +# ✨ Call – The Future of AI-Native Video Meetings -An Open-source AI-native alternative to Google Meet and Zoom +> 🚀 An **open-source AI-native alternative** to Google Meet and Zoom — built for speed, collaboration, and privacy. -Ready to escape complex, data-hungry meeting apps? Join the future of video calling. +--- -- [Website](https://joincall.co) -- [GitHub](https://github.com/joincalldotco/call) -- [Discord](https://discord.com/invite/bre4echNxB) -- [Twitter](https://x.com/joincalldotco) +

+ Call Logo +

---- +

+ 🌐 Website • + 💻 GitHub • + 💬 Discord • + 🐦 Twitter +

-## Features +

+ + + + +

-### Video Calling +--- -### Team Collaboration +## 🌟 Why Call? -### Contact Management +Say goodbye to bloated, data-hungry apps. Call is lightweight, AI-driven, and privacy-first. Perfect for teams, friends, and communities that value simplicity and performance. -### Meeting Scheduling +✨ **Highlights:** -### AI-Powered Features +* 🚀 Lightning-fast meetings with scalable media servers +* 🤖 AI-powered features (transcription, smart scheduling, insights) +* 🔒 Built-in privacy & security +* 🌍 Cross-platform (Web, PWA, Mobile responsive) +* ⚡ Offline-first for basic features +* 🎨 Beautiful, modern UI -### Security & Privacy +--- -### Cross-Platform +## 🎥 Core Features -- **Web-based** - works on any modern browser -- **Mobile responsive** design -- **Progressive Web App** (PWA) support -- **Offline capabilities** for basic features +* **Video Calling** – Crystal-clear audio & video +* **Team Collaboration** – Chat, share, and work together seamlessly +* **Contact Management** – Keep your network smartly organized +* **Meeting Scheduling** – Integrated calendar support +* **AI Enhancements** – Summaries, captions, and intelligent workflows +* **Cross-Platform** – Browser, Mobile, and PWA ready +* **Security & Privacy** – Transparent, open-source architecture + +

+ Meeting UI +

--- -## Tech Stack +## 🛠️ Tech Stack -### Frontend +**Frontend** -- **Next.js 15** - React framework with App Router -- **TypeScript** - Type-safe development -- **Tailwind CSS** - Utility-first styling -- **shadcn/ui** - Beautiful component library -- **Mediasoup-SFU** - Scalable Selective Forwarding Unit for real-time audio/video conferencing -- **React Query** - Server state management -- **Zustand** - For Distributed state management +* ⚛️ Next.js 15 (React + App Router) +* 📘 TypeScript +* 🎨 Tailwind CSS + shadcn/ui +* 📡 Mediasoup-SFU (scalable video) +* 🔄 React Query + Zustand (state management) -### Backend +**Backend** -- **Hono** - Fast web framework -- **PostgreSQL** - Reliable database -- **Drizzle ORM** - Type-safe database queries -- **Better Auth** - Authentication system +* ⚡ Hono (lightning-fast web framework) +* 🐘 PostgreSQL + Drizzle ORM +* 🔑 Better Auth (secure authentication) -### Infrastructure +**Infrastructure** -- **Turborepo** - Monorepo build system -- **Docker** - Containerization -- **Vercel** - Deployment platform -- **Rate Limiting** - API protection +* 📦 Turborepo (monorepo build system) +* 🐳 Docker & Docker Compose +* ▲ Vercel deployment +* 🚦 Built-in rate limiting --- -## Quick Start +## ⚡ Quick Start ### Prerequisites -- **Node.js** 20 or higher -- **pnpm** package manager -- **Docker** and Docker Compose -- **Git** -- **Microsoft Visual C++ Redistributable for Visual Studio 2022** (For Windows) +* Node.js v20+ +* pnpm +* Docker & Docker Compose +* Git +* (Windows only) Microsoft Visual C++ Redistributable ### Installation -1. **Clone the repository** - - ```bash - git clone https://github.com/joincalldotco/call.git - cd call - ``` - -2.1 **Start the development environment** - ```bash -./setup-dev.sh -``` +git clone https://github.com/joincalldotco/call.git +cd call -2.2 **Start the development environment (Windows)** +# Setup dev environment +./setup-dev.sh -```bash +# On Windows ./setup_dev_windows.sh ``` -This script will automatically: - -- Create a `.env` file if it doesn't exist -- Install dependencies if needed -- Start Docker services (PostgreSQL) -- Wait for the database to be ready -- Start the development environment +Visit: -> **Note:** If you encounter any issues during setup, check the [ERRORS.md](ERRORS.md) file for troubleshooting guidance. +* 🌐 Web app → [http://localhost:3000](http://localhost:3000) +* 🔌 Server → [http://localhost:1284](http://localhost:1284) -3. **Open your browser** - - Web app: http://localhost:3000 - - Server: http://localhost:1284 - -### Environment Variables +--- -Create a `.env` file in the root directory with the following variables: +## ⚙️ Environment Variables ```env -# Database Configuration DATABASE_URL=postgresql://postgres:postgres@localhost:5434/call - -# Google OAuth (for authentication) GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret - -# Email Configuration (for notifications) EMAIL_FROM=your_email@domain.com RESEND_API_KEY=your_resend_api_key - -# App URLs FRONTEND_URL=http://localhost:3000 BACKEND_URL=http://localhost:1284 - -# App Configuration NODE_ENV=development - - -go to https://www.better-auth.com/docs/installation and click on 'Generate Secret'. - BETTER_AUTH_SECRET=your_generated_secret ``` -### Docker Services - -The project uses Docker Compose to run PostgreSQL: - -```bash -# Start services -pnpm docker:up - -# Stop services -pnpm docker:down - -# Clean up (removes volumes) -pnpm docker:clean -``` - --- -## Project Structure +## 📂 Project Structure ``` call/ -├── apps/ # Applications -│ ├── web/ # Next.js web application -│ │ ├── app/ # App Router pages -│ │ │ ├── (app)/ # Main app routes -│ │ │ ├── (auth)/ # Authentication routes -│ │ │ └── (waitlist)/ # Landing page -│ │ ├── components/ # React components -│ │ ├── lib/ # Utilities and configs -│ │ └── public/ # Static assets -│ └── server/ # Hono backend API -│ ├── routes/ # API routes -│ ├── config/ # Server configuration -│ ├── utils/ # Server utilities -│ └── validators/ # Request validation -├── packages/ # Shared packages -│ ├── auth/ # Authentication utilities -│ ├── db/ # Database schemas and migrations -│ ├── ui/ # Shared UI components (shadcn/ui) -│ ├── eslint-config/ # ESLint configuration -│ └── typescript-config/ # TypeScript configuration -├── docker-compose.yml # Docker services -├── setup-dev.sh # Development setup script -└── turbo.json # Turborepo configuration +├── apps/ +│ ├── web/ # Next.js frontend +│ └── server/ # Hono backend +├── packages/ # Shared modules (auth, db, ui, configs) +├── docker-compose.yml +├── setup-dev.sh +└── turbo.json ``` --- -## Development - -### Available Scripts - -```bash -# Development -pnpm dev # Start all applications -pnpm dev --filter web # Start only web app -pnpm dev --filter server # Start only server - -# Building -pnpm build # Build all packages -pnpm build --filter web # Build only web app - -# Linting & Formatting -pnpm lint # Lint all packages -pnpm lint:fix # Fix linting issues -pnpm format # Check formatting -pnpm format:fix # Fix formatting - -# Database -pnpm db:generate # Generate database types -pnpm db:migrate # Run database migrations -pnpm db:push # Push schema changes -pnpm db:studio # Open database studio - -# Docker -pnpm docker:up # Start Docker services -pnpm docker:down # Stop Docker services -pnpm docker:clean # Clean up Docker volumes -``` - -### Package Management - -We use pnpm workspaces to manage this monorepo: - -```bash -# Install a dependency in a specific workspace -pnpm add --filter - -# Install a dependency in all workspaces -pnpm add -w - -# Link a local package in another workspace -pnpm add @call/ --filter --workspace -``` - -### Development Workflow - -1. **Create a feature branch** - - ```bash - git checkout -b feature/your-feature-name - ``` - -2. **Make your changes** following our coding standards - -3. **Run checks before committing** - - ```bash - pnpm lint # Lint all packages - pnpm build # Build all packages - ``` +## 👩‍💻 Development Workflow -4. **Commit your changes** using conventional commits: +1. **Branch** → `git checkout -b feature/my-feature` +2. **Develop** → Run `pnpm dev` +3. **Lint & Build** → `pnpm lint && pnpm build` +4. **Commit** → Follow [Conventional Commits](https://www.conventionalcommits.org/) +5. **PR** → Push and open a pull request 🎉 - ``` - feat: add new feature - fix: resolve bug - docs: update documentation - chore: update dependencies - refactor: improve code structure - test: add tests - ui: for ui changes - ``` - -5. **Push and create a pull request** - -### Package Organization +--- -- Place shared code in `packages/` -- Keep applications in `apps/` -- Use consistent naming conventions: - - Applications: `@call/app-name` - - Packages: `@call/package-name` +## 🌌 Fun Stuff -### Code of Conduct +

+ Stars Chart +

-This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. +* 🌟 Watch the project grow on GitHub stars +* 🪐 Check out contributor stats & graphs +* 🎉 Join our [Discord](https://discord.com/invite/bre4echNxB) for community events --- -## Acknowledgments +## 🤝 Community & Support -- **All contributors** who help make Call better every day - -## Support - -- **Discord**: [Join our community](https://discord.com/invite/bre4echNxB) -- **Email**: attiyassr@gmail.com -- **Twitter**: [@joincalldotco](https://x.com/joincalldotco) +* 💬 [Discord Community](https://discord.com/invite/bre4echNxB) +* 🐦 [Follow us on Twitter](https://x.com/joincalldotco) +* 📧 Email: [attiyassr@gmail.com](mailto:attiyassr@gmail.com) --- -Made with ❤️ by the Call team - -[Website](https://joincall.co) • [GitHub](https://github.com/Call0dotco/call) • [Discord](https://discord.com/invite/bre4echNxB) • [Twitter](https://x.com/joincalldotco) +

Made with ❤️ by the Call team