{"id":22612344,"url":"https://github.com/mustafa-kamel/rails-chat","last_synced_at":"2025-10-09T00:42:47.639Z","repository":{"id":133867420,"uuid":"439063588","full_name":"mustafa-kamel/rails-chat","owner":"mustafa-kamel","description":"Chat app built using Ruby on Rails that does the crud operations in background tasks using Redis and Sidekiq and supports a full-text search using elastic search.","archived":false,"fork":false,"pushed_at":"2022-05-20T22:24:02.000Z","size":62,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T23:42:14.860Z","etag":null,"topics":["api","chat","docker","docker-compose","elasticsearch","mysql","rails","redis","ruby","sidekiq"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/mustafa-kamel.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,"zenodo":null}},"created_at":"2021-12-16T16:52:20.000Z","updated_at":"2024-07-29T12:59:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"60448776-30e0-4baf-adf3-917435e71768","html_url":"https://github.com/mustafa-kamel/rails-chat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mustafa-kamel/rails-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafa-kamel%2Frails-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafa-kamel%2Frails-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafa-kamel%2Frails-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafa-kamel%2Frails-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mustafa-kamel","download_url":"https://codeload.github.com/mustafa-kamel/rails-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mustafa-kamel%2Frails-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000639,"owners_count":26082879,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api","chat","docker","docker-compose","elasticsearch","mysql","rails","redis","ruby","sidekiq"],"created_at":"2024-12-08T17:12:23.094Z","updated_at":"2025-10-09T00:42:47.630Z","avatar_url":"https://github.com/mustafa-kamel.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rails Chat App\nA chat app built using Ruby on Rails, MySQL, Elastic Search, Redis, and SideKiq.\nThe app allows clients to create applications that may have many chats for their applications according to the following criteria:\n- The client creates a new application, gives it a name, and gets its token.\n- The client can list all applications or get a specific application by its token.\n- The client can create a new chat in a specific application using its token and get the number of the created chat.\n- The client can list all application's chats or get a specific chat by its number and application token.\n- For each chat, the client is able to create new messages by identifying the application's token and the chat's number.\n- The client can search messages for a specific application and chat.\n- Both the application and the chat have a field that indicates the count of related chats or messages accordingly, those fields are updated hourly.\n\nThis app is built using rails-6.1.4.1 and uses a MySQL database. It integrates with Elastic Search, SearchFlip, Redis, and SideKiq.\n\n## Installation\n\u003e Before you install this app you should insure that you have `ruby-3.0.2` or higher installed.\n\nTo get this app up and running you should follow the next steps:\n* Clone the app from github.\n```bash\ngit clone https://github.com/mustafa-kamel/rails-chat.git\n```\n\n* cd in the repo directory.\n```bash\ncd rails-chat\n```\n\n* Install dependencies by running.\n```bash\nbundle install\n```\n\n* Create db and migrate schema.\n```bash\nrake db:create\nrake db:migrate\n```\n\n* Run the rails server.\n```bash\nrails s\n```\n\n* Now you can access the app apis by visiting [localhost:3000](localhost:3000).\n\n\n\n\n* Or simply you can run the app using docker by running:\n```bash\ndocker-compose up\n```\nAfter all containers starts you should now run the database migrations.\n* You can do that simply by visiting [localhost:3000](localhost:3000) from you browser and click on Run pending migrations.\n\n* Or open your terminal and run the following command to list the running containers.\n```bash\ndocker ps\n```\n\n* Copy the CONTAINER ID value for the IMAGE `rails-chat_web` then run the following command.\n```bash\ndocker exec -it {CONTAINER ID} rails db:migrate\n```\n\n\n* You can list all the available routes by running\n```bash\nrails routes\n```\n\n### API Documentation\nYou can view an API documentation for this project on postman by visiting:\n[https://www.getpostman.com/collections/f27d26583531fe8becc4](https://www.getpostman.com/collections/f27d26583531fe8becc4).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafa-kamel%2Frails-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmustafa-kamel%2Frails-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmustafa-kamel%2Frails-chat/lists"}