{"id":21952047,"url":"https://github.com/systangotechnologies/chatty","last_synced_at":"2025-04-23T04:04:36.008Z","repository":{"id":79336189,"uuid":"140535580","full_name":"SystangoTechnologies/chatty","owner":"SystangoTechnologies","description":"A micro-service dedicated for chat applications.","archived":false,"fork":false,"pushed_at":"2018-11-25T19:18:19.000Z","size":169,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-23T04:04:30.519Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/SystangoTechnologies.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":"2018-07-11T07:07:18.000Z","updated_at":"2025-02-06T07:01:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"ccc28724-2621-410e-996d-338b9c88be0c","html_url":"https://github.com/SystangoTechnologies/chatty","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SystangoTechnologies%2Fchatty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SystangoTechnologies%2Fchatty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SystangoTechnologies%2Fchatty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SystangoTechnologies%2Fchatty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SystangoTechnologies","download_url":"https://codeload.github.com/SystangoTechnologies/chatty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250366727,"owners_count":21418771,"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":[],"created_at":"2024-11-29T06:19:37.130Z","updated_at":"2025-04-23T04:04:36.000Z","avatar_url":"https://github.com/SystangoTechnologies.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A Real Time Chat Application built using Node.js, Express, Redis and Socket.io\n\n## Index\n+ [Features](#features)\n+ [Installation](#installation)\n+ [Directory Structure](#directory-structure)\n+ [Contributors](#Contributors)\n+ [License](#license)\n\n\n## Features\u003ca name=\"features\"\u003e\u003c/a\u003e\n+ Uses Express as the application Framework.\n+ Real-time communication between a client and a server using [Socket.io](https://github.com/socketio/socket.io).\n+ Uses [MySQL](https://www.mysql.com/), [Sequelize](https://github.com/sequelize/sequelize) and [mySQL workbench](https://www.mysql.com/products/workbench/) for storing and querying data.\n+ Uses [Redis](https://redis.io/) for broadcasting active users. Also as in-memory data store.\n+ Dockerized and uses docker-compose file.\n+ Running multiple clusters(each cluster is independent from each other)\n\n## Directory Structure \u003ca name=\"directory-structure\"\u003e\u003c/a\u003e\n        .\n        │─── .babelrc                           // Babel configuration\n        │─── .gitignore                         // Contains files to ignore on git\n        │─── docker-compose.yml                 // Docker compose file to provide environment variables and start the container\n        │─── Dockerfile                         // Docker file contain commands to assemble an image\n        │─── LICENSE\n        │─── package.json                       // List of npm modules and various meta-data\n        │─── README.md\n        │─── server.js                          // Contains Express server and start socket\n        │\n        ├─── config\n        │  │─── config.json                     // Define environment variables for development environment\n        │  └─── index.js                        // Uses system env for Production environment and config.json for development environment\n        │\n        ├─── public\n        │   │─── index.html                     // Demo html client\n        │   │─── style.css                      // Css for the Demo client\n        │   │\n        │   └─── js\n        │       └───socket.io-1.2.0.js          // JS for supporting socket.io client\n        │\n        └───src\n            ├─── models\n            │     │─── delivered.js             // Stores all delivered messages\n            │     │─── index.js                 // Initializes Sequalize\n            │     │─── messages.js              // Stores all messages\n            │     │─── peer_conversations.js    // Stores all conversations between users\n            │     └─── pending.js               // Stores all delivered messages\n            │\n            ├─── socket\n            │     └─── index.js                 // Socket.io connections and socket managment code\n            │\n            └─── utility\n                  └─── index.js                 // Utility for serving database related operations\n## Installation \u003ca name=\"installation\"\u003e\u003c/a\u003e\n### Running Locally\nMake sure you have [Docker](https://docs.docker.com/v17.09/engine/installation/#cloud) and [Docker-compose](https://docs.docker.com/compose/install/) installed.\n\n1. Clone or Download the repository\n\t```\n\t$ git clone https://github.com/SystangoTechnologies/chatty\n\t$ cd chatty\n\t```\n2. Set Environment Variables\n\n\t```\n\t- PORT=3000\n    - REDIS_PORT=6380\n    - REDIS_HOST=redis\n    - REDIS_PASSWORD=''       \n    - DB_USER\n    - DB_PASSWORD\n    - DB_HOST\n    - DB_PORT\n    - DB_NAME\n    - DB_DIALECT\n    - SESSION_SECRET\n    - ECHO_SENT_MESSAGE\n    - NO_OF_RECORDS_PER_PAGE\n\t```\n3. Start the application\n\n\t```\n\t$ sudo docker-compose up\n\t```\nYour app should now be running on [localhost:3000](http://localhost:3000/).\n\n## Contributors \u003ca name=\"Contributors\"\u003e\u003c/a\u003e\n[Arpit Khandelwal](https://github.com/arpit-systango)\n[Anurag Vikram Singh](https://www.linkedin.com/in/anuragvikramsingh/)\n\n## License \u003ca name=\"license\"\u003e\u003c/a\u003e\nBuilt under [MIT](http://www.opensource.org/licenses/mit-license.php) license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystangotechnologies%2Fchatty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystangotechnologies%2Fchatty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystangotechnologies%2Fchatty/lists"}