A cross-platform real-time chat app using React Native & Node.js
- ๐ User Authentication with JWT + bcryptjs
- โก Real-Time Messaging using Socket.IO
- ๐ฌ Private Chats (1-on-1 conversations)
- ๐พ Persistent Data stored in PostgreSQL via Sequelize
- ๐ฑ Cross-Platform Frontend (iOS + Android)
- ๐จ Tailwind CSS UI using NativeWind
- ๐งญ Smooth Navigation with React Navigation
- Node.js, Express.js
- PostgreSQL + Sequelize
- Socket.IO
- JWT + bcryptjs
- React Native (Expo)
- NativeWind (Tailwind CSS for RN)
- React Navigation
- Axios + Socket.IO Client
- React Native Paper
fullstack_chatapp/
โ
โโโ backend/ # Node.js + Express API
โ โโโ models/ # Sequelize models
โ โโโ routes/ # API endpoints
โ โโโ socket/ # WebSocket logic
โ โโโ .env
โ
โโโ frontend/ # React Native app (Expo)
โโโ screens/ # Auth + Chat UI
โโโ components/ # UI elements
โโโ app.json # API link config
cd backend
npm installCreate a .env file in the backend directory:
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_HOST=localhost
DB_PORT=5432
JWT_SECRET=your_jwt_secret
IP_ADDRESS_LINK="http://<YOUR_LOCAL_IP>:3000"Start the server:
npm run devThe backend will run at http://localhost:5000.
cd ../frontend
npm installEdit app.json to point to your backend:
{
"expo": {
"extra": {
"API_LINK": "http://<YOUR_LOCAL_IP>:5000"
}
}
}Start Expo:
npx expo startScan the QR code with the Expo Go app on your device to run the application.
POST /api/auth/registerPOST /api/auth/loginGET /api/session
GET /api/conversation/:userIdGET /api/conversation/chat/:conversationId
| Event | Description |
|---|---|
connection |
User connects to the socket server |
chat message |
Client sends a message (content, conversationId, receiverId); server broadcasts to recipient |
disconnect |
User disconnects from the socket |
- ๐ Voice & Video Calling (WebRTC)
- ๐ File Sharing (images, PDFs, documents)
- ๐ธ Screenshot Sharing
Contributions are welcome! Please open an issue or submit a pull request.







