diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..1d4eadb
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 Aman Kumar
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bfb4fc6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,289 @@
+# ๐ฌ ChatApp
+
+> A full-stack real-time messaging platform with secure auth, image sharing, push notifications, and Redis-powered online status โ built MERN-style with TypeScript end to end.
+
+[](https://chat-app-psi-teal.vercel.app)
+
+
+
+
+
+---
+
+## ๐ About This Project
+
+ChatApp is a modern real-time messaging platform built on a MERN-style stack with TypeScript across both frontend and backend. It goes well beyond a typical chat tutorial โ featuring JWT authentication, Redis-backed online status, image/file sharing via Cloudinary, web push notifications, and a Bloom filter optimisation for fast signup checks.
+
+๐ **Live Demo:** [chat-app-psi-teal.vercel.app](https://chat-app-psi-teal.vercel.app)
+
+---
+
+## ๐ธ Screenshots
+
+| Sign In | Create Account | Chat Interface |
+|---------|-----------------|----------------|
+|
|
|
|
+
+---
+
+## ๐ Features
+
+### Core
+- ๐ **Secure Authentication** โ JWT-based signup and login with password hashing
+- โก **Real-Time Messaging** โ Instant delivery via Socket.IO
+- ๐ฌ **Persistent Conversations** โ Threaded chat history between users
+- ๐ **User Search** โ Find users by name or phone number
+- ๐ผ๏ธ **Image & File Sharing** โ Cloudinary-powered uploads, rendered inline in chat
+- โฉ๏ธ **Reply to Messages** โ Quote and reply within a thread
+- ๐ฉ **Invitations** โ Send and accept chat invites
+
+### Advanced
+- ๐ **Push Notifications** โ Web Push API (VAPID) for new messages and invites
+- ๐ข **Online Status** โ Real-time presence tracking via Redis
+- ๐ก๏ธ **Rate Limiting** โ Redis-backed protection against message spam/abuse
+- ๐ธ **Bloom Filter** โ Probabilistic check for username/email availability โ fast, low DB load
+- ๐๏ธ **Session Management** โ Redis-managed sessions for scalable state
+- ๐จ **Modern UI** โ Custom-styled theme, mobile responsive, recently overhauled
+
+---
+
+## ๐ง How It Works
+
+```
+User signs up โ Bloom filter checks availability โ JWT issued
+ โ
+User searches/invites another user โ Invitation sent
+ โ
+Invitation accepted โ Conversation created
+ โ
+Message sent โ Socket.IO broadcasts in real-time
+ โ
+Redis tracks online status + rate limits + session state
+ โ
+Image attached? โ Uploaded to Cloudinary โ URL stored in message
+ โ
+Recipient offline? โ Web Push notification fires
+```
+
+---
+
+## ๐ ๏ธ Tech Stack
+
+| Layer | Technology |
+|-------|------------|
+| Frontend Framework | React + TypeScript |
+| Build Tool | Vite |
+| Styling | Custom CSS theme |
+| State Management | React Context API |
+| HTTP Client | Axios |
+| Real-time Client | Socket.IO Client |
+| Backend Runtime | Node.js + Express.js |
+| Database | MongoDB (Mongoose ODM) |
+| Cache / Sessions | Redis |
+| Real-time Server | Socket.IO |
+| Auth | JWT + bcrypt |
+| File Storage | Cloudinary |
+| Push Notifications | Web Push API (VAPID) |
+| Uploads | Multer |
+| CORS | cors middleware |
+
+---
+
+## ๐งช Key Features in Detail
+
+| Feature | Description |
+|---------|--------------|
+| Real-time Messaging | Instant message delivery with Socket.IO |
+| User Authentication | Secure signup/login with JWT and password hashing |
+| Image Sharing | Upload images via Cloudinary, rendered inline in chat |
+| Push Notifications | Web Push API with VAPID for browser notifications |
+| Online Status | Real-time user presence via Redis |
+| Chat Invitations | Send and accept conversation requests |
+| Reply to Messages | Quote and reply to specific messages |
+| Rate Limiting | Prevents abuse of sensitive API endpoints |
+| Bloom Filter | Optimised username/email availability checks |
+| Modern UI | Custom-styled theme with mobile responsiveness |
+
+---
+
+## ๐งฑ Backend Architecture
+
+**MVC-style structure, fully modular:**
+
+| Folder | Responsibility |
+|--------|----------------|
+| `server.js` | Entry point โ Express init, DB connect, middleware, server start |
+| `config/` | Redis client setup |
+| `models/` | Mongoose schemas โ User, Conversation, Messages, Invitation, PushSubscription |
+| `controllers/` | Business logic โ auth, user, conversation, message, invitation |
+| `routes/` | REST endpoints mapped to controllers |
+| `middleware/` | JWT auth guard, HTTP + Redis-backed rate limiters |
+| `utils/` | Push notification dispatch logic |
+
+**API Routes:**
+
+| Endpoint | Purpose |
+|----------|---------|
+| `/api/auth` | Signup, login |
+| `/api/users` | Search, profile updates |
+| `/api/conversations` | Create, fetch conversations |
+| `/api/messages` | Send, retrieve messages |
+| `/api/invitations` | Create, accept invitations |
+| `/api/push` | Push subscription management |
+
+---
+
+## ๐จ Frontend Architecture
+
+```
+src/
+โโโ pages/ # Login, Signup, ChatLayout โ top-level routes
+โโโ components/ # Chat bubbles, message input, user lists
+โโโ context/ # Auth state, theme โ global providers
+โโโ hooks/ # Custom reusable stateful logic
+โโโ services/ # API communication layer
+โโโ utils/ # Date formatting, string helpers
+โโโ App.tsx # Root component โ routing + providers
+โโโ main.tsx # Entry point โ renders to DOM
+```
+
+---
+
+## ๐ Project Structure
+
+```
+ChatApp/
+โโโ Backend/
+โ โโโ server.js
+โ โโโ package.json
+โ โโโ config/
+โ โ โโโ redis.js
+โ โโโ models/
+โ โ โโโ User.js
+โ โ โโโ Conversation.js
+โ โ โโโ Messages.js
+โ โ โโโ Invitation.js
+โ โ โโโ PushSubscription.js
+โ โโโ controllers/
+โ โ โโโ auth.controller.js
+โ โ โโโ user.controller.js
+โ โ โโโ conversation.controller.js
+โ โ โโโ message.controller.js
+โ โ โโโ invitation.controller.js
+โ โโโ routes/
+โ โ โโโ auth.routes.js
+โ โ โโโ user.routes.js
+โ โ โโโ conversation.routes.js
+โ โ โโโ message.routes.js
+โ โ โโโ invitation.routes.js
+โ โ โโโ push.routes.js
+โ โโโ middleware/
+โ โ โโโ auth.middleware.js
+โ โ โโโ httpRateLimiter.js
+โ โ โโโ rateLimiter.js
+โ โโโ utils/
+โ โโโ sendPushNotification.js
+โโโ frontend/
+โ โโโ index.html
+โ โโโ package.json
+โ โโโ vite.config.ts
+โ โโโ src/
+โ โโโ App.tsx
+โ โโโ main.tsx
+โ โโโ pages/
+โ โโโ components/
+โ โโโ context/
+โ โโโ hooks/
+โ โโโ services/
+โ โโโ utils/
+โโโ .gitignore
+โโโ LICENSE
+โโโ README.md
+```
+
+---
+
+## โก Getting Started
+
+### Prerequisites
+- Node.js v16+
+- MongoDB (local or Atlas URI)
+- Redis (local or cloud)
+- Cloudinary account (for image uploads)
+- VAPID keys (for push notifications)
+
+### 1. Clone the repository
+
+```bash
+git clone https://github.com/AMANkumar0004/ChatApp.git
+cd ChatApp
+```
+
+### 2. Backend setup
+
+```bash
+cd Backend
+npm install
+```
+
+Create a `.env` file inside `Backend/`:
+
+```
+PORT=5000
+MONGODB_URI=mongodb://localhost:27017/chatapp
+JWT_SECRET=your_jwt_secret
+REDIS_URL=redis://localhost:6379
+CLOUDINARY_CLOUD_NAME=your_cloud_name
+CLOUDINARY_API_KEY=your_api_key
+CLOUDINARY_API_SECRET=your_api_secret
+VAPID_PUBLIC_KEY=your_vapid_public_key
+VAPID_PRIVATE_KEY=your_vapid_private_key
+```
+
+Start the backend:
+
+```bash
+npm start
+```
+
+### 3. Frontend setup
+
+```bash
+cd frontend
+npm install
+npm run dev
+```
+
+App runs at **http://localhost:5173**
+
+> Make sure both backend and frontend are running simultaneously for real-time functionality to work.
+
+---
+
+## ๐ฏ Future Improvements
+
+- [ ] End-to-end encryption for messages
+- [ ] Voice and video calls integration
+- [ ] Message reactions (emojis, likes)
+- [ ] Read receipts and typing indicators
+- [ ] Group chats with admin controls
+- [ ] Message search and filtering
+- [ ] Dark/light theme toggle
+
+---
+
+## ๐จโ๐ป Author
+
+**Aman Kumar** โ `AMANkumar0004`
+
+[](https://github.com/AMANkumar0004)
+
+---
+
+## ๐ License
+
+MIT โ free to use, modify, and distribute with attribution.
+
+---
+
+> *This README documents the architecture as of the latest commit (June 18, 2026). Implementation details may evolve as the project grows.*
diff --git a/Screenshots/chat.jpg b/Screenshots/chat.jpg
new file mode 100644
index 0000000..0282da4
Binary files /dev/null and b/Screenshots/chat.jpg differ
diff --git a/Screenshots/create.png b/Screenshots/create.png
new file mode 100644
index 0000000..15baaad
Binary files /dev/null and b/Screenshots/create.png differ
diff --git a/Screenshots/signin.png b/Screenshots/signin.png
new file mode 100644
index 0000000..93d05dc
Binary files /dev/null and b/Screenshots/signin.png differ