Roomify is a real-time chat application designed for seamless communication using WebSockets. It allows users to create rooms, chat within rooms, and send direct messages to other users. This project is built using a Turborepo for monorepo management and utilizes pnpm
as the package manager.
The project consists of the following packages:
- ws-backend: WebSocket server for real-time messaging.
- http-backend: HTTP server for REST API services.
- react-frontend: React-based frontend for the chat application.
Ensure you have the following installed on your system:
git clone https://github.com/your-repo/roomify.git
cd roomify
- Navigate to the
backend
folder:
cd backend
- Install all dependencies using pnpm:
pnpm install
- Start all applications simultaneously::
pnpm run dev
This command runs all the apps in parallel using Turborepo.
- ws-backend: Available at ws://localhost:8080
- http-backend: Available at http://localhost:8001
- react-frontend: Available at http://localhost:5173
- nextjs: Available at http://localhost:3001
-
Navigate to the WebSocket backend folder:
cd apps/ws-backend
-
Install dependencies:
pnpm install
-
Start the WebSocket server:
pnpm run dev
-
Navigate to the HTTP backend folder:
cd apps/http-backend
-
Install dependencies:
pnpm install
-
Start the HTTP server:
pnpm run dev
-
Navigate to the React frontend folder:
cd apps/react-frontend
-
Install dependencies:
pnpm install
-
Start the React development server:
pnpm run dev
-
Navigate to the Next.js frontend folder:
cd apps/nextjs
-
Install dependencies:
pnpm install
-
Start the Next.js development server:
pnpm run dev
- Room Management: Create, join, and manage chat rooms.
- Direct Messaging: Send messages directly to other users.
- Real-Time Communication: Powered by WebSockets for instant updates.
- Scalability: Modular structure managed with Turborepo.
pnpm dev
: Run all development servers.pnpm build
: Build all applications.pnpm lint
: Lint all applications.
We welcome contributions! If you find a bug or have a feature request, please open an issue or submit a pull request.
This project is licensed under the MIT License.