EnkiChat is a secure, scalable messenger for corporate communication. Built with TypeScript, it offers real‑time chats, public and private rooms, JWT authentication, and basic access‑control features—ideal for teams and organizations that need data control and high performance.
- Real‑time chats: Instant messaging with support for private and group chats via WebSockets.
- Rooms and channels: Public and private rooms with participant management.
- Authentication: Registration and login using JSON Web Tokens (JWT).
- Security: HTTPS and token validation to protect data.
- Simple UI: Intuitive React interface styled with Tailwind CSS.
- Cross‑platform: Runs on Windows, macOS, Linux through a web browser.
- Frontend: React, TypeScript, socket.io‑client,Tailwind CSS
- Backend: Node.js, Express, TypeScript, socket.io, Mongoose
- Database: MongoDB
- Authentication: JSON Web Token (JWT)
Prerequisites
- Node.js (v18 or newer)
- MongoDB (v5 or newer)
- npm
# Clone the repository
git clone https://github.com/tokyo-09/EnkiChat.git
cd EnkiChat
# Backend
cd server
npm install
# Frontend
cd ../client
npm install Make sure MongoDB is running:
mongod
(Optional) Create a .env file in the server folder:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/messenger
JWT_SECRET=secret_key
Running the applicationcd server
npm startThe server will start at http://localhost:3000.
cd client
npm run devOpen http://localhost:5173 in a browser.
Open the app in a browser. Register or log in with a username and password.
Click “Create Room”. Enter a name and choose the type (public or private).
Select a room from the list. Send messages; they appear instantly for all participants.
EnkiChat/
├── client/ # Frontend
│ ├── src/
│ │ ├── App.tsx # Main component
│ │ └── index.css # Tailwind styles
├── server/ # Backend
│ ├── server.ts # Main server
│ └── tsconfig.json # TypeScript config
└── README.md # DocumentationWe welcome any improvements! To contribute:
Fork the repository. Create a branch: git checkout -b feature/your-feature. Make changes and commit: git commit -m "Add your feature". Push to your fork: git push origin feature/your-feature. Open a Pull Request. Please follow the Contributor Covenant Code of Conduct.
Future Plans WebRTC integration for video/audio calls. End‑to‑end encryption of messages. Bot and webhook support. Mobile app (React Native). Advanced roles and audit logs for compliance.