{"id":20949050,"url":"https://github.com/nirbelelti/railsaichatbot","last_synced_at":"2026-04-27T14:31:05.354Z","repository":{"id":262320883,"uuid":"886709919","full_name":"nirbelelti/RailsAIChatBot","owner":"nirbelelti","description":"RailsChatBot is a Ruby on Rails application that provides a real-time chat interface for users. This application integrates the Gemini AI API to generate answers, and the chats are saved into the database to present the chat history for the user.","archived":false,"fork":false,"pushed_at":"2024-11-11T19:29:21.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-29T14:16:57.067Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/nirbelelti.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-11-11T13:17:35.000Z","updated_at":"2024-11-11T19:29:24.000Z","dependencies_parsed_at":"2024-11-11T20:26:33.427Z","dependency_job_id":"b42f98d3-c81f-4ed7-8a26-945d8d4ac62e","html_url":"https://github.com/nirbelelti/RailsAIChatBot","commit_stats":null,"previous_names":["nirbelelti/railsaichatbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nirbelelti/RailsAIChatBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirbelelti%2FRailsAIChatBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirbelelti%2FRailsAIChatBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirbelelti%2FRailsAIChatBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirbelelti%2FRailsAIChatBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirbelelti","download_url":"https://codeload.github.com/nirbelelti/RailsAIChatBot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirbelelti%2FRailsAIChatBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32341447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":[],"created_at":"2024-11-19T00:30:20.449Z","updated_at":"2026-04-27T14:31:05.324Z","avatar_url":"https://github.com/nirbelelti.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RailsChatBot\n\n## Description\n\nRailsChatBot is a Ruby on Rails application that provides a real-time chat interface for users. \nThis application integrates Devise for user authentication, ensuring secure access, and utilizes Turbo Rails for smooth,\ndynamic interactions, allowing messages to update without refreshing the page.\n\nThe core functionality of RailsChatBot demonstrates seamless communication with the Gemini API, a powerful language \ngeneration tool. Through an initializer, the application establishes a connection with the Gemini API, sending user queries\nand receiving intelligent, conversational responses. This setup highlights how Rails applications can efficiently leverage\nexternal APIs for enhanced functionality and user engagement within a Turbo-powered chat interface.\n\nAdditionally, RailsChatBot incorporates Sidekiq to handle background processing. By offloading API calls and other tasks\nto Sidekiq workers, the application maintains a fast, responsive user experience even while handling intensive operations\nasynchronously. This integration showcases the effective use of background jobs in Rails to optimize performance and scalability.\n## Features\n\n- User authentication with Devise\n- CRUD operations for chats utilize Turbo Rails and Hot wire\n- Integration with the Gemini API for language generation\n- Dynamic interactions with Turbo Rails\n- Real-time chat interface\n- Responsive design with Bootstrap CSS\n- Asynchronously views rendering with Hotwire\n- RSpec tests for models, requests, and routes\n\n## Requirements\n\n- Ruby 3.0.2\n- Rails 7.2.0\n- PostgreSQL\n- Redis\n- Gemini API key\n- Bundler\n- Yarn\n- Node.js (npm)\n\n## Setup\n\n1. **Clone the repository**:\n   ```sh\n   git clonehttps://github.com/nirbelelti/RailsAIChatBot.git\n   cd RailsAIChatBot\n   \n    ```\n2. **Install dependencies**:\n3. **Install dependencies**:\n   ```sh\n   bundle install\n   yarn install\n   ```\n4. **Create the database and seed**:\n   ```sh \n     rails db:prepare\n   ```\n   FYI: This command will create the database, load the schema, and initialize it with the seed data. For demonstration\npurposes, the seed data includes a user with the following credentials: email: 'email@email.com', password: 'Password'\n5. **Set up the Gemini API key**:\n   - Create a `.env` file in the root directory.\n   - Add the following line to the `.env` file\n   \n6. **Start the server**:\n   ```sh\n   rails server OR bin/dev\n   ```\n7. **Start the Redis server**:\n   ```sh \n    redis-server\n    ```\n8. **Start the Sidekiq server**:\n   ```sh\n    bundle exec sidekiq\n    ```\n9. **Access the application**: The application will be available at `http://localhost:3000`.\n\n## Testing\n Run the RSpec tests with the following command:\n ```sh\n    rspec\n ```\nThe tests include model, request, and routing specs, ensuring the application's core functionality is working as expected.\n\n## License\nMIT License","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirbelelti%2Frailsaichatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirbelelti%2Frailsaichatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirbelelti%2Frailsaichatbot/lists"}