{"id":18760535,"url":"https://github.com/bcastell/product-chat","last_synced_at":"2026-04-12T17:02:56.036Z","repository":{"id":39848168,"uuid":"132297091","full_name":"bcastell/product-chat","owner":"bcastell","description":"Chatbot Dashboard","archived":false,"fork":false,"pushed_at":"2022-12-08T00:59:03.000Z","size":963,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-20T17:18:56.565Z","etag":null,"topics":["flask","javascript","mongodb","python"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/bcastell.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}},"created_at":"2018-05-06T01:25:53.000Z","updated_at":"2018-05-07T04:45:56.000Z","dependencies_parsed_at":"2022-09-22T22:52:03.154Z","dependency_job_id":null,"html_url":"https://github.com/bcastell/product-chat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bcastell/product-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcastell%2Fproduct-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcastell%2Fproduct-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcastell%2Fproduct-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcastell%2Fproduct-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcastell","download_url":"https://codeload.github.com/bcastell/product-chat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcastell%2Fproduct-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31722563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T13:21:33.774Z","status":"ssl_error","status_checked_at":"2026-04-12T13:21:29.265Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["flask","javascript","mongodb","python"],"created_at":"2024-11-07T18:13:05.284Z","updated_at":"2026-04-12T17:02:56.014Z","avatar_url":"https://github.com/bcastell.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Product-Chat\n\nAutomate SMS responses to customer feedback using sentiment analysis\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"display.png\"\u003e\n\u003c/p\u003e\n\n# Setup\nAssumes a macOS environment.\n\n## Dependencies\n\n### Python\nInstall the latest versions of Python 2 and 3.\n\n```bash\n$ brew install python\n$ brew install python3\n```\n\n### pip\nInstall pip.\n\n```bash\n$ sudo easy_install pip\n```\n\n### MongoDB\nInstall MongoDB.\n\n```bash\n$ brew install mongodb\n```\n\nIf you're running El Capitan or earlier, execute this instead.\n\n```bash\n$ brew install mongodb@3.4\n```\n\nCreate the database directory. Give write permission to that directory.\n\n```bash\n$ sudo mkdir -p /data/db\n$ sudo chmod -R go+w /data/db\n```\n\n### ngrok\nInstall ngrok.\n\n```bash\n$ brew cask install ngrok\n```\n\n### virtualenv\nPrepare the virtual environment.\n\n```bash\n$ cd dashboard\n$ virtualenv venv\n$ . venv/bin/activate\n```\n\n### Python packages\nInstall Python packages.\n\n```bash\n$ pip install -r requirements.txt\n```\n\n-----------------------------------\n\n## Run\n\n### MongoDB\nRun the mongod process in a separate terminal window.\n\n```bash\n$ /file/path/to/process/.../mongod\n```\n\nIf you used brew to install MongoDB, the file path should be similar to the one below.\n\n`/usr/local/Cellar/mongodb\\@3.4/3.4.13/bin/mongod`\n\n### ngrok\nRun ngrok in a separate terminal window.\n\n```bash\n$ ngrok http 5000\n```\n\n### Twilio\n1. Sign in to Twilio to access the dashboard\n2. Navigate to Phone Numbers/Manage Numbers/Active Numbers\n3. Select a phone number\n4. Scroll down to the Messaging section\n5. Locate the 'A MESSAGE COMES IN' field\n6. Select Webhook in the left dropdown menu\n7. Enter the HTTPS ngrok URL in the text field\n8. Append `/sms` to the end of the URL\n9. Select HTTP POST in the right dropdown menu\n10. Save changes\n\n### Environment Variables\nOpen `environ.sh` and enter values for the five soon-to-be environment variables.\n\n```bash\nexport TWILIO_ACCOUNT_SID=\nexport TWILIO_AUTH_TOKEN=\nexport TWILIO_PHONE_NUMBER=\n\nexport TEXT_ANALYTICS_KEY=\nexport TEXT_ANALYTICS_SENTIMENT_URL=\n```\n\nGrant `environ.sh` write permission. Execute the file.\n\n```bash\n$ chmod u+x environ.sh\n$ source environ.sh\n```\n\n### Flask\nStart the local server in the same terminal window where `environ.sh` was executed.\n\n```bash\n$ flask run\n```\n\nEnter the URL `localhost:5000` in a browser.\n\nWhen it's time to close the application, exit the virtual environment.\n\n```bash\n$ deactivate\n```\n\n-----------------------------------------------\n\n## Usage\n\n### Customer Phone Number\nThe customer phone number may be entered in various formats.\n\n```bash\n000-000-0000\n000 000 0000\n000.000.0000\n\n(000)000-0000\n(000)000 0000\n(000)000.0000\n(000) 000-0000\n(000) 000 0000\n(000) 000.0000\n\n000-0000\n000 0000\n000.0000\n\n0000000\n0000000000\n(000)0000000\n```\n\n### Tags\nThe tags `\u003cfirstName\u003e` and `\u003cproductType\u003e` are replaced by the customer name and drink fields, respectively. All, some, or no tags can be included when editing messages.\n\n### Form\n* All form fields are validated before any SMS is sent to a customer.\n* Customer name, phone number, and drink fields are cleared after a successful form submission. The message fields are preserved so the same messages can be quickly sent to another customer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcastell%2Fproduct-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcastell%2Fproduct-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcastell%2Fproduct-chat/lists"}