ConnectApp is a real-time chat application featuring video and voice call capabilities. It leverages Next.js for the frontend and Nest.js for the backend, providing a seamless user experience with modern web technologies.
- Project Structure
- Getting Started
- Environment Variables
- Features
- Dependencies
- Usage
- Contributing
- License
- Acknowledgements
The ConnectApp project is organized as follows:
connectApp/
├── frontend/ # Next.js project
└── backend/ # Nest.js project
To set up the ConnectApp project locally, follow these steps.
Ensure you have the following software installed on your local machine:
- Node.js: Download here
- npm or yarn: npm / yarn
Clone the repository:
git clone https://github.com/yourusername/connectApp.git
cd connectApp
Install dependencies for both frontend and backend:
Frontend:
cd frontend
npm install
# or
yarn install
Backend:
cd ../backend
npm install
# or
yarn install
Navigate to the frontend directory:
cd frontend
Start the Next.js development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 in your browser to see the application running.
Navigate to the backend directory:
cd backend
Start the Nest.js development server:
npm run start:dev
# or
yarn start:dev
The backend server will be running on http://localhost:3001 by default.
Create .env
files in both the frontend and backend directories to manage environment-specific settings. Here are examples of what you might need:
Frontend .env
:
NEXT_PUBLIC_API_URL=http://localhost:3001
Backend .env
:
MONGO_URI=mongodb://localhost:27017/connectApp
JWT_SECRET=your_jwt_secret_key
- Real-Time Messaging: Powered by Socket.io for instantaneous communication.
- User Authentication: Secure login and signup processes using JWT for token-based authentication.
- Video and Voice Calls: High-quality video and audio calls utilizing WebRTC.
- Responsive UI: Designed with Tailwind CSS to ensure adaptability across devices.
- Nest.js
- MongoDB
- Mongoose
- Passport.js
- JWT
- Bcrypt
- Socket.io
- WebRTC
- Next.js
- React Query
- Axios
- Socket.io-client
- Tailwind CSS
- User Authentication: Users can sign up and log in to the application. Authentication is handled using JWT, and passwords are hashed with bcrypt.
- Real-Time Chat: Users can send and receive messages in real-time. Messages are stored in MongoDB.
- Video and Voice Calls: Users can initiate and receive video and voice calls using WebRTC.
Contributions are welcome! Please read the CONTRIBUTING.md file for details on the code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.
- Nest.js
- Next.js
- Tailwind CSS
- Socket.io
- MongoDB
- WebRTC