A multi-user messaging system using the following technologies:
- Frontend: React (Vite) with Tailwind CSS
- Backend: Node.js with Express
- Database: PostgreSQL with Drizzle ORM
- Real-time Communication: Socket.IO
- Real-time messaging between users
- Online/offline status for users
- “Typing…” indicator while chatting
- Read/unread message sorting system
- Image and video upload feature
- Infinite scrolling of messages to the top
- Node.js (v14 or later)
- PostgreSQL (v12 or later)
- npm
- Git
git clone https://github.com/sem22-dev/hiryChat.git
cd backend
npm install
cd src
-
Configure the environment variables:
-
Create a .env file in the backend directory.
-
Add the following variables:
DATABASE_URL=your_postgres_connection_string
JWT_SECRET=your_jwt_secret_key
GMAIL_USER=
GMAIL_APP_PASSWORD=
- Run database migrations:
npx drizzle-kit generate
npx drizzle-kit migrate
npx drizzle-kit push
- Run backend:
cd src
npx tsx server.ts
cd frontend
npm install
- Start the frontend:
npm run dev