Skip to content

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.

License

Notifications You must be signed in to change notification settings

Tokyo-09/EnkiChat-OSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

EnkiChat

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.

Work in progress

Key Features

  • 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.

Technology Stack

  • Frontend: React, TypeScript, socket.io‑client,Tailwind CSS
  • Backend: Node.js, Express, TypeScript, socket.io, Mongoose
  • Database: MongoDB
  • Authentication: JSON Web Token (JWT)

Installation

Prerequisites

  • Node.js (v18 or newer)
  • MongoDB (v5 or newer)
  • npm

Install dependencies

# Clone the repository
git clone https://github.com/tokyo-09/EnkiChat.git
cd EnkiChat

# Backend
cd server
npm install 

# Frontend
cd ../client
npm install   

Environment setup

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 application

Backend

cd server
npm start

The server will start at http://localhost:3000.

Frontend

cd client
npm run dev

Open http://localhost:5173 in a browser.

Usage

Registration / Login

Open the app in a browser. Register or log in with a username and password.

Creating rooms

Click “Create Room”. Enter a name and choose the type (public or private).

Chatting

Select a room from the list. Send messages; they appear instantly for all participants.

Project Structure

EnkiChat/
├── client/              # Frontend
│   ├── src/
│   │   ├── App.tsx      # Main component
│   │   └── index.css    # Tailwind styles
├── server/              # Backend
│   ├── server.ts        # Main server
│   └── tsconfig.json    # TypeScript config
└── README.md            # Documentation

Contributing

We 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.

License

MIT License

Contact

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published