A modern video conferencing web application built with React.js
Connexus is a cutting-edge video conferencing platform that delivers seamless real-time video meetings with an intuitive user interface. Built with modern React.js, it offers secure authentication, meeting history tracking, and a responsive design that works perfectly across all devices.
- User registration and login system
- Protected routes with authentication context
- Secure session management
- High-quality video and audio calls
- Multi-participant meetings
- Screen sharing capabilities
- Real-time chat integration
- Mobile-first approach
- Optimized for desktop, tablet, and mobile
- Adaptive UI components
- Meeting history tracking
- Schedule upcoming meetings
- Join meetings with simple codes/links
- Clean, intuitive interface
- Custom CSS modules for component isolation
- Smooth animations and transitions
| Technology | Purpose |
|---|---|
| React.js | Frontend framework |
| Context API | Global state management |
| CSS Modules | Component-scoped styling |
| WebRTC | Real-time communication |
| JavaScript ES6+ | Modern JavaScript features |
| Vite/CRA | Build tool and development server |
src/
├── contexts/ # React Contexts
│ ├── AuthContext.js # Authentication state management
│ ├── FlashContext.js # Flash message system
│ └── RouteContext.js # Route protection logic
│
├── pages/ # Application pages & components
│ ├── authentication.jsx # Login/Signup interface
│ ├── Content.jsx # Main content wrapper
│ ├── Footer.jsx # Application footer
│ ├── history.jsx # Meeting history dashboard
│ ├── home.jsx # Homepage component
│ ├── landing.jsx # Landing page
│ ├── Navbar.jsx # Navigation header
│ ├── Scroller.jsx # Custom scrollable component
│ └── videoMeet.jsx # Video meeting interface
│
├── styles/ # Styling files
│ ├── footer.css # Footer specific styles
│ ├── scroller.css # Scroller component styles
│ └── videocomponent.module.css # Video component modules
│
├── utils/ # Utility functions
│ ├── api.js # API helper functions
│ ├── constants.js # Application constants
│ └── helpers.js # General utility functions
│
├── App.jsx # Main application component
├── App.css # Global application styles
├── index.css # Global CSS reset and base styles
└── main.jsx # Application entry point
Before you begin, ensure you have the following installed:
- Node.js (v16.0 or higher)
- npm or yarn package manager
- Git for version control
-
Clone the repository
git clone https://github.com/ashutoshpatrodevops/connexus-frontend.git cd connexus-frontend -
Install dependencies
npm install # or yarn install -
Set up environment variables
cp .env.example .env
Edit
.envfile with your configuration:for the frontend you dont need anything for environment
-
Start the development server
npm start # or yarn start -
Open your browser Navigate to
http://localhost:5173to see the application running.
| Command | Description |
|---|---|
npm start |
Runs the app in development mode |
npm test |
Launches the test runner |
npm run build |
Builds the app for production |
npm run preview |
Preview the production build locally |
npm run lint |
Run ESLint to check code quality |
npm run format |
Format code with Prettier |
- Sign up or log in to your account
- Navigate to the home page
- Click "Start New Meeting" or "Join Meeting"
- Share the meeting code with participants
- Enjoy seamless video conferencing!
- Click "Join Meeting" from the homepage
- Enter the meeting code or meeting link
- Configure your camera and microphone
- Click "Join" to enter the meeting
Modify the CSS custom properties in src/index.css:
:root {
--primary-color: #4F46E5;
--secondary-color: #10B981;
--background-color: #FFFFFF;
--text-color: #111827;
--border-radius: 8px;
}Use CSS Modules for component-specific styles:
/* videocomponent.module.css */
.videoContainer {
border-radius: var(--border-radius);
background: var(--background-color);
}Run the test suite:
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Generate coverage report
npm test -- --coverage-
Build the application
npm run build
-
Preview the build
npm run preview
-
Deploy the
src/folder to your preferred hosting service
- Netlify: Drag and drop the
distfolder - Vercel: Connect your GitHub repository
- AWS S3: Upload the build files to an S3 bucket
- GitHub Pages: Use GitHub Actions for automatic deployment
We welcome contributions from the community! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
If you encounter any issues or have questions:
- Check the existing issues
- Create a new issue with detailed information
- Mobile App - React Native implementation
- Advanced Chat - File sharing and emoji reactions
- Recording - Meeting recording and playback
- Breakout Rooms - Split participants into smaller groups
- Virtual Backgrounds - Custom background support
- Analytics Dashboard - Meeting insights and statistics
This project is licensed under the MIT License - see the LICENSE file for details.
- React Team for the amazing framework
- WebRTC for enabling real-time communication
- Open Source Community for inspiration and support
- Thanks to passprt team for helping me for smooth authentication
- special work is on videoMeet.jsx file which taught me mind blowing stuffs for production ready platform
Built with ❤️ by Ashutosh Patro
⭐ Star this repo • 🐛 Report issues •
- Email: coderashu7847@gmail.com
- Issues: Report bugs or request features
- Blogs: Join community articles
