{"id":24740924,"url":"https://github.com/rahul4019/chatlink","last_synced_at":"2026-04-10T06:32:54.665Z","repository":{"id":258201542,"uuid":"861354490","full_name":"rahul4019/Chatlink","owner":"rahul4019","description":"A sleek, real-time messaging app featuring customizable profiles and secure authentication. Built with Node.js, Express, Socket.io, and PostgreSQL on the backend, and a responsive React frontend with TypeScript.","archived":false,"fork":false,"pushed_at":"2024-12-15T16:35:09.000Z","size":765,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T20:12:47.858Z","etag":null,"topics":["jwt-authentication","nodejs","postgresql","react","s3-bucket","socket-io","typescript","zod-validation"],"latest_commit_sha":null,"homepage":"https://chatlink.my.to","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rahul4019.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-22T17:10:19.000Z","updated_at":"2024-12-15T16:35:13.000Z","dependencies_parsed_at":"2024-11-08T13:33:07.805Z","dependency_job_id":"c04a2f6f-1c74-467a-b4df-f7b38379dbc5","html_url":"https://github.com/rahul4019/Chatlink","commit_stats":null,"previous_names":["rahul4019/chatlink"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rahul4019/Chatlink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahul4019%2FChatlink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahul4019%2FChatlink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahul4019%2FChatlink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahul4019%2FChatlink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rahul4019","download_url":"https://codeload.github.com/rahul4019/Chatlink/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahul4019%2FChatlink/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260081537,"owners_count":22956130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jwt-authentication","nodejs","postgresql","react","s3-bucket","socket-io","typescript","zod-validation"],"created_at":"2025-01-27T23:48:31.656Z","updated_at":"2025-12-30T19:57:41.529Z","avatar_url":"https://github.com/rahul4019.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![](./client/public/chatlink.svg) ChatLink\n\n**ChatLink** is a sleek, real-time messaging web app featuring customizable profiles and secure authentication. Built with Node.js, Express, Socket.io, and PostgreSQL on the backend, and a responsive React frontend with TypeScript.\n\n[![CI/CD](https://github.com/rahul4019/ChatLink/actions/workflows/deploy-to-ec2.yml/badge.svg)](https://github.com/rahul4019/ChatLink/actions/workflows/deploy-to-ec2.yml)\n\n🌐 **Live Demo**: [chatlink.my.to](http://chatlink.my.to)\n\n\u003cimg src=\"./client/src/assets/banner.png\" alt=\"Image Description\" width=\"full\" style=\"border-radius: 30px;\"\u003e\n\n---\n\n## 📑 Table of Contents\n\n1. [✨ Features](#-features)\n2. [🛠️ Tech Stack](#️-tech-stack)\n3. [🚀 How to Run ChatLink Locally](#-how-to-run-chatlink-locally)\n4. [🎉 Contribute](#-contribute)\n\n---\n\n## ✨ Features\n\n### 1. **User Authentication \u0026 Profiles** 👤\n\n- **Registration** via email 📧 and **JWT** login 🔑.\n- **Search users** by email or username 🔍.\n- **Profile Information**: Name, email, username, bio, and profile picture 📸.\n- **Profile Picture**: Upload, update, and validate image size/type 🖼️.\n- **Activity Status**: Online/offline display🌐.\n- **Profile Updates**: Edit details like username, email with validation ✏️.\n\n---\n\n### 2. **Messaging Features \u0026 Read Receipts** 💬\n\n- **One-on-One Messaging**: Real-time text messaging with timestamps ⏰.\n- **Typing Indicators**: Notify when a user is typing ⌨️.\n- **Message Status**: Delivery status (sent, delivered, read) with optional read receipts ✅.\n\n---\n\n### 3. **Real-Time Communication** ⚡\n\n- Live **messaging** using **Socket.IO** ⚡.\n- Instant updates for message delivery, read status, and typing indicators 📲.\n- **Live presence status** (online/offline) 🟢🔴.\n\n---\n\n## 🛠️ Tech Stack\n\nChatLink is powered by a modern, scalable, and developer-friendly tech stack! Here's what makes it awesome:\n\n### 🌐 **Frontend**\n\n- **React**: For building dynamic and responsive user interfaces.\n- **Redux Toolkit**: For state management of the app.\n- **Shadcn**: For styled components and elegant UI.\n- **Tailwind CSS**: For fast and flexible styling.\n\n### ⚙️ **Backend**\n\n- **Node.js**: A robust runtime for building the server.\n- **Express.js**: To create a seamless API for communication.\n- **Socket.io**: Enabling real-time chat functionality.\n\n### 🗄️ **Database**\n\n- **PostgreSQL**: A powerful relational database for secure data storage.\n- **Supabase**: For real-time updates and simplified database management.\n\n### ✅ **Validation**\n\n- **Zod**: Ensures reliable and clean data validation.\n\n### ☁️ **Cloud Services**\n\n- **AWS EC2**: To host the backend for reliable performance.\n- **AWS S3**: To store profile pictures and other user-uploaded content.\n\n### ♾️ **DevOps**\n\n- **AWS**: Cloud computing services, including EC2 and S3 for hosting and storage.\n- **GitHub Actions**: CI/CD automation for continuous integration and deployment pipelines.\n- **Docker**: Containerization for consistent environments across development, testing, and production.\n\n### 🧑‍💻 **Programming Language**\n\n- **TypeScript**: Ensuring type safety and maintainability throughout the project.\n\n---\n\n## 🚀 How to Run ChatLink Locally\n\nFollow these simple steps to set up ChatLink on your local environment.\n\n---\n\n### 🖥️ Prerequisites\n\nBefore starting, make sure you have the following installed:\n\n- [Node.js](https://nodejs.org/) (LTS version recommended)\n- A working PostgreSQL database (for the backend).\n\n---\n\n### 📝 Steps to Get Started\n\n1. **Clone the Project**  \n   Open your terminal and run the following commands:\n\n   ```bash\n   git clone https://github.com/rahul4019/Chatlink.git\n   cd chatlink\n   ```\n\n2. **Set Up Environment Files**\n\n    - Inside the root directory, you will see two folders: api and client.\n    - Navigate to the api folder:\n        ```bash\n        cd api\n        ```\n    \n        Create a .env file by copying the content from .api.env.example:\n        ```bash\n        cp ..api.env.example .env\n        ```\n    - Obtain your credentials by creating an account on the respective websites.\n    - Replace env variables with your credentials \n\n    - Navigate to the client folder:\n        ```bash\n        cd ../client\n        ```\n\n        Create a .env file here too by copying the content from .client.env.example:\n        ```bash\n        cp .client.env.example .env\n        ```\n\n3. **Run the API and Client**\n\n    - First, navigate to the api directory to start the backend server:\n        ```bash\n        cd api\n        npm install\n        npm run dev\n        ```\n\n    - Open a new terminal window, navigate to the client directory, and start the frontend:\n        ```bash\n        cd client\n        npm install\n        npm run dev\n        ```\n\n4. **Open the Application**\n\n    - Once both the API and client are running, open your browser and go to: http://localhost:5173\n    - You should now see the ChatLink web app! 🎉\n\n## 🎉 Contribute\n\nWe welcome contributions to ChatLink! Here's how you can get involved:\n\n1. **Fork and clone the repository**:  \n   Fork this repo and clone it to your local machine to start working.\n\n2. **Create a new branch**:  \n   Create a branch for your changes (e.g., `feature-add-chat-notifications`).\n\n3. **Submit a Pull Request**:  \n   After making your changes, push your branch and create a Pull Request to the main repository.\n\n---\n\n### 🤝 Need Help?\n\n💡 If you get stuck, feel free to reach out!\n\n- Open an issue for help or tag me (@rahul4019) in your PR.\n- You can also contact me at [rahuldevstack@gmail.com](mailto:rahuldevstack@gmail.com).\n\nLet's make ChatLink even better together! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahul4019%2Fchatlink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frahul4019%2Fchatlink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahul4019%2Fchatlink/lists"}