Skip to content

LongBaoCoder2/znz

Repository files navigation

🚀 ZNZ Not Zoom

ZNZ is a user-friendly video conferencing application offering real-time audio and video communication, meeting management, and interactive features to make virtual collaboration seamless and engaging.

✨ Features

  • Authentication and user management.
  • Meeting creation and management.
  • Real-time audio and video communication.
  • Create and join meetings via link or ID and password.
  • Real-time audio and video communication.
  • Screen sharing.
  • Chat functionality during meetings.
  • Participant management (approve, remove, and transfer host rights).
  • Adjustable meeting layout and user pinning.

🛠️ Technology Stacks

🧑‍💻 Prerequisites

  • Node.js (v22 or later)
  • Yarn package manager
  • Docker and Docker Compose

🚀 Setup Instructions

1. Clone the Repository

git clone https://github.com/LongBaoCoder2/znz.git
cd znz

2. Start the Database

Start the PostgreSQL database container using Docker Compose:

docker compose up -d

3. Install Dependencies

Install dependencies for both client and server:

yarn install

4. Run migrations

Run database migrations for both client and server:

yarn db:generate-dev

4. Run the Application

Start both the client and SFU server:

yarn dev

The client will be available at http://localhost:3000. The SFU server will run on http://localhost:8000.

📁 Project Structure

.
├── .github             # github action workflows
├── client              # Vite React frontend
├── sfu                 # Express.js + Mediasoup backend
├── .editorconfig       # Editor configuration
├── .eslintrc.json      # ESLint configuration
├── .prettierrc         # Prettier configuration
├── DEVELOPMENT.md      # Development notes and guidelines
├── LICENSE             # License information
├── README.md           # Project documentation
├── docker-compose.yml  # PostgreSQL database setup
├── node_modules        # Node.js dependencies
├── package.json        # Project configuration
└── yarn.lock           # Yarn lockfile for dependencies

🧑‍💻 Environment Variables

Create .env files in both client and sfu folders and configure the following variables:

Client .env

VITE_USE_HTTPS=<true or false>
VITE_API_URL_HTTPS=<https://api.example.com>
VITE_API_URL_HTTP=<http://api.example.com>

SFU .env

USE_HTTPS=<true or false>
DATABASE_URL=<database connection string>
PORT=<port number>
SECRET_KEY=<secret key>
REFRESH_SECRET_KEY=<refresh secret key>

📝 Development Notes

Ensure Docker is running to start the PostgreSQL database.

Use yarn dev to run both client and server simultaneously.

Modify the docker-compose.yml file to update database configurations if needed.

Future Enhancements

  • Add screen sharing.
  • Add emoji feedback and raising hand.
  • Implement analytics and reporting for meetings.
  • Improve UI/UX for a seamless user experience.

Contributing

Contributions are welcome! Please fork the repository and create a pull request for any feature or bug fix.

License

This project is licensed under the MIT License.

About

ZNZ not zoom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages