{"id":28547704,"url":"https://github.com/subhajitpramanik007/tkify","last_synced_at":"2025-07-07T18:32:32.255Z","repository":{"id":267970910,"uuid":"897837072","full_name":"subhajitpramanik007/tkify","owner":"subhajitpramanik007","description":"TKIFY is a real-time chat application built with React, Vite, Express (Node.js), and MongoDB. This app allows users to send and receive messages in real time. It uses WebSockets (Socket.io) for real-time communication between clients and the backend.","archived":false,"fork":false,"pushed_at":"2025-06-02T07:09:13.000Z","size":310,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T00:45:17.269Z","etag":null,"topics":["express","javascript","react","socket-io","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/subhajitpramanik007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-12-03T10:24:20.000Z","updated_at":"2025-06-02T07:09:17.000Z","dependencies_parsed_at":"2024-12-13T17:00:44.858Z","dependency_job_id":"db24f827-8eb3-4af5-9a6a-81e8e0c6450f","html_url":"https://github.com/subhajitpramanik007/tkify","commit_stats":null,"previous_names":["subho-1011/tkify","subho-p/tkify","subhajitpramanik007/tkify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/subhajitpramanik007/tkify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subhajitpramanik007%2Ftkify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subhajitpramanik007%2Ftkify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subhajitpramanik007%2Ftkify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subhajitpramanik007%2Ftkify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/subhajitpramanik007","download_url":"https://codeload.github.com/subhajitpramanik007/tkify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subhajitpramanik007%2Ftkify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260322089,"owners_count":22991764,"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":["express","javascript","react","socket-io","typescript","vite"],"created_at":"2025-06-10T00:37:48.563Z","updated_at":"2025-07-07T18:32:32.249Z","avatar_url":"https://github.com/subhajitpramanik007.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TKIFY - Real-Time Chat App\n\nTKIFY is a real-time chat application built with **React**, **Vite**, **Express (Node.js)**, and **MongoDB**. This app allows users to send and receive messages in real time. It uses WebSockets (Socket.io) for real-time communication between clients and the backend.\n\n## Table of Contents\n\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Getting Started](#getting-started)\n  - [With Docker](#with-docker)\n  - [Without Docker](#without-docker)\n\n## Features\n\n- Real-time messaging using **Socket.io**\n- User authentication (JWT)\n- MongoDB-based data storage for users and messages\n- Cross-platform support (works on both desktop and mobile)\n\n## Technologies Used\n\n- **Frontend**: React, Vite, Socket.io client\n- **Backend**: Node.js, Express, Socket.io, JWT for authentication\n- **Database**: MongoDB\n- **Containerization**: Docker (optional)\n- **Authentication**: JWT (JSON Web Token)\n\n---\n\n## Getting Started\n\n### With Docker\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/subho-1011/tkify.git\n   cd tkify\n   ```\n\n2. **Modify docker-compose.yml file**:\n\n    You can change **environment variables** - `ACCESS_TOKEN_SECRET`, `REFRESH_TOKEN_SECRET`\n    Optional add `CLOUDINARY` api keys\n\n    ```yaml\n    version: '3.8'\n\n    services:\n      client:\n          build:\n            context: ./client\n          ports:\n            - \"3000:80\"\n          environment:\n            - VITE_API_URL=http://localhost:8080\n          depends_on:\n            - server\n          networks:\n            - tkify-net\n\n      server:\n          build:\n            context: ./server\n          ports:\n            - \"8080:8080\"\n          environment:\n            - CORS_ORIGINS=http://localhost:3000\n            - MONGO_URI=mongodb://mongo:27017/tkify\n            - PORT=8080\n            - NODE_ENV=development\n            - ACCESS_TOKEN_SECRET=your_access_token_secret\n            - ACCESS_TOKEN_EXPIRES=1h\n            - REFRESH_TOKEN_SECRET=your_refresh_token_secret\n            - REFRESH_TOKEN_EXPIRES=30d\n            - CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\n            - CLOUDINARY_API_KEY=your_cloudinary_api_key\n            - CLOUDINARY_API_SECRET=your_cloudinary_api_secret\n          depends_on:\n            - mongo\n          networks:\n            - tkify-net\n\n      mongo:\n        image: mongo:latest\n          container_name: mongo\n        ports:\n          - \"27017:27017\"\n        volumes:\n          - mongo-data:/data/db\n        networks:\n          - tkify-net\n\n    networks:\n      tkify-net:\n          driver: bridge\n\n    volumes:\n      mongo-data:\n    ```\n\n3. **Build and start the containers using Docker Compose**:\n\n    Make sure Docker is installed on your machine. If not, [Download and install Docker from the official website](https://www.docker.com/get-started).\n\n    Run the following command in the root directory of the project:\n\n    ```bash\n    docker-compose up --build\n    ```\n\n    Docker Compose will build and start the following services:\n\n    - `client`: The frontend (React + Vite)\n    - `server`: The backend (Express + Node.js)\n    - `mongo`: A MongoDB instance\n\n4. **Access the application**:\n    Once the containers are running, you can access the application by visiting [http://localhost:3000](http://localhost:3000) for the frontend.\n\n### Without Docker\n\n1. **Clone the repository**:\n\n    ```bash\n    git clone https://github.com/subho-1011/tkify.git\n    cd tkify\n    ```\n\n2. **Install dependencies**:\n\n    Navigate to the `client` and `server` directories and install the required dependencies:\n\n    ```bash\n    # In the client directory\n    cd client\n    npm install\n\n    # In the server directory\n    cd ../server\n    npm install\n    ```\n\n3. **Set up environment variables**:\n\n    Create a `.env` file in the `server` directory and add the following environment variables:\n\n    ```bash\n    PORT=8080\n    NODE_ENV=development\n    CORS_ORIGINS=http://localhost:3000\n    \n    # For MongoDB Atlas\n    MONGO_URI=mongodb+srv://\u003cusername\u003e:\u003cpassword\u003e@cluster0.mongodb.net/tkify?retryWrites=true\u0026w=majority\n\n    # For local MongoDB\n    MONGO_URI=mongodb://localhost:27017/tkify\n    \n    ACCESS_TOKEN_SECRET=your_access_token_secret\n    ACCESS_TOKEN_EXPIRES=1h\n    REFRESH_TOKEN_SECRET=your_refresh_token_secret\n    REFRESH_TOKEN_EXPIRES=30d\n    \n    # for send images (optional)   \n    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\n    CLOUDINARY_API_KEY=your_cloudinary_api_key\n    CLOUDINARY_API_SECRET=your_cloudinary_api_secret\n    ```\n\n   Create a `.env` file in the `client` directory and add the following environment variables:\n\n    ```env\n    VITE_API_URL=http://localhost:8080\n    ```\n\n4. **Start the backend server**:\n\n    In the `server` directory, run the following command to start the backend server:\n\n    ```bash\n    npm run build\n    npm run start\n    ```\n\n5. **Start the frontend development server**:\n\n    In a new terminal, navigate to the `client` directory and run the following command to start the frontend development server:\n\n    ```bash\n    npm run dev\n    ```\n\n6. **Access the application**:\n\n    Once both the frontend and backend servers are running, you can access the application by visiting [http://localhost:3000](http://localhost:3000) for the frontend.\n\n## Contributing\n\nWe welcome contributions to improve TKIFY. If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request on the [GitHub repository](https://github.com/subho-1011/tkify.git).\n\nHappy Coding!\nThank you for using TKIFY!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubhajitpramanik007%2Ftkify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsubhajitpramanik007%2Ftkify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubhajitpramanik007%2Ftkify/lists"}