A real-time chat application designed for educational institutions, enabling seamless communication between students and instructors.
- Real-time messaging using SendBird and Socket.IO
- User authentication and authorization
- Group channels and direct messaging
- Message notifications
- Modern, responsive UI with Material-UI
- TypeScript support for better type safety
- React + TypeScript (Vite)
- Material-UI
- SendBird UI Kit
- Socket.IO Client
- NestJS
- SendBird SDK
- Socket.IO
- JWT Authentication
elimu-messaging/
├── frontend/ # React + TypeScript frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── services/ # API and chat services
│ │ ├── types/ # TypeScript type definitions
│ │ └── utils/ # Utility functions
│ └── .env # Frontend environment variables
│
└── backend/ # NestJS backend
├── src/
│ ├── modules/ # Feature modules
│ ├── gateways/ # WebSocket gateways
│ └── services/ # Business logic services
└── .env # Backend environment variables
- Node.js (v18 or higher)
- npm or yarn
- SendBird account and API credentials
- Clone the repository:
git clone https://github.com/your-username/elimu-messaging.git
cd elimu-messaging- Set up frontend:
cd frontend
npm install
cp .env.example .env # Configure your environment variables
npm run dev- Set up backend:
cd backend
npm install
cp .env.example .env # Configure your environment variables
npm run start:devVITE_SENDBIRD_APP_ID=your_sendbird_app_id
VITE_BACKEND_URL=your_backend_url
SENDBIRD_APP_ID=your_sendbird_app_id
SENDBIRD_API_TOKEN=your_api_token
JWT_SECRET=your_jwt_secret
- Frontend development server runs on
http://localhost:5173 - Backend development server runs on
http://localhost:3000
The application is deployed on Render:
- Frontend: https://elimu-chat-frontend.onrender.com
- Backend: https://elimu-chat-backend.onrender.com
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.