{"id":20695677,"url":"https://github.com/ibm-cloud/feedbackapp-ionic-cloudant","last_synced_at":"2025-04-22T20:14:05.854Z","repository":{"id":92350289,"uuid":"75076241","full_name":"IBM-Cloud/feedbackapp-ionic-cloudant","owner":"IBM-Cloud","description":"An Ionic mobile feedback app using Cloudant NoSQL DB service on IBM Bluemix","archived":false,"fork":false,"pushed_at":"2017-08-12T03:46:17.000Z","size":4717,"stargazers_count":7,"open_issues_count":1,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-22T20:13:57.557Z","etag":null,"topics":["cloudant","feedback","feedbackapp-ionic-cloudant","ibm-bluemix","ionic"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IBM-Cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","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":"2016-11-29T11:46:52.000Z","updated_at":"2021-02-18T19:17:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"77532671-36cd-4352-b552-60edd6ef315c","html_url":"https://github.com/IBM-Cloud/feedbackapp-ionic-cloudant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM-Cloud%2Ffeedbackapp-ionic-cloudant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM-Cloud%2Ffeedbackapp-ionic-cloudant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM-Cloud%2Ffeedbackapp-ionic-cloudant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IBM-Cloud%2Ffeedbackapp-ionic-cloudant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IBM-Cloud","download_url":"https://codeload.github.com/IBM-Cloud/feedbackapp-ionic-cloudant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250316058,"owners_count":21410476,"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":["cloudant","feedback","feedbackapp-ionic-cloudant","ibm-bluemix","ionic"],"created_at":"2024-11-17T00:10:26.803Z","updated_at":"2025-04-22T20:14:05.848Z","avatar_url":"https://github.com/IBM-Cloud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ionic-Cloudant-FeedbackApp \nAn Ionic feedback app using Cloudant NoSQL service on IBM Bluemix. An easy to configure mobile app for receiving feedback at Meetups, Events etc.,\n\n[**Ionic**](http://ionicframework.com/) is a complete open-source SDK for hybrid mobile app development. Built on top of [AngularJS](https://angularjs.org) and [Apache Cordova](https://cordova.apache.org), Ionic provides tools and services for developing hybrid mobile apps using Web technologies like CSS, HTML5, and Sass.\n\n[**Cloudant**](https://cloudant.com) is the distributed database as a service (DBaaS) built from the ground up to deliver fast-growing application data to the edge.\n\nThe App Runs on iOS and Android and build using **Ionic Version 1.7.13**\n\n\u003cstrong\u003eiOS:\u003c/strong\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/VidyasagarMSC/Ionic-Cloudant-FeedbackApp/blob/master/images/Simulator%20Screen%20Shot%2028-Nov-2016%2C%203.42.45%20PM.png\" width=\"350\"\u003e\n\u003cimg src=\"https://github.com/VidyasagarMSC/Ionic-Cloudant-FeedbackApp/blob/master/images/Simulator%20Screen%20Shot%2028-Nov-2016%2C%203.43.08%20PM.png\" width=\"350\"\u003e\n\u003c/p\u003e\n\n\u003cstrong\u003eAndroid:\u003c/strong\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/VidyasagarMSC/Ionic-Cloudant-FeedbackApp/blob/master/images/Screenshot_20160616-095752.png\" width=\"350\"\u003e\n\u003cimg src=\"https://github.com/VidyasagarMSC/Ionic-Cloudant-FeedbackApp/blob/master/images/Screenshot_20160616-095800.png\" width=\"350\"\u003e\n\u003c/p\u003e\n\n\n\n## Creating a Cloudant NoSQL DB service on IBM Bluemix \n\n\u003cul\u003e\n\u003cli\u003eDon’t have Bluemix account? \u003ca target=\"_blank\" href=\"https://console.ng.bluemix.net/registration/?target=/catalog/services/conversation/\" title=\"(Opens in a new tab or window)\"\u003eSign up\u003c/a\u003e to create a free trial account.\u003c/li\u003e\n\u003cli\u003eHave a Bluemix account? Use \u003ca target=\"_blank\" href=\"https://console.ng.bluemix.net/catalog/services/cloudant-nosql-db\" title=\"(Opens in a new tab or window)\"\u003ethis link\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\n Add a new Cloudant data service in just a few clicks:\n\n1. Visit your Bluemix dashboard.\n2. Click Catalog.\n3. On the left Pane, Click on **Data \u0026 Analytics** under Services.\n4. Click **Cloudant NoSQL DB** tile.\n5. Enter a unique descriptive name in the Service name field.\n6. Check Features, Images and Pricing Plans.\n7. Click the **Create** button.\n\n### Cloudant Dashboard 2.0\nOnce the Cloudant service is created, \n\n* Click on ***LAUNCH*** button to launch the Cloudant Dashboard 2.0 (Powerful querying, analytics, replication, and syncing happens here) on a seperate tab \n* Create a new database by clicking on **Create Database** on the top ribbon. Your database is created.\n* From the left Pane, Click on **Account** -\u003e CORS Tab -\u003e Check **All domains ( * )**. *Not recommended for all usecases, this being a simple mobile app taking this liberty. [CORS Documentation](https://docs.cloudant.com/cors.html)\n\n## Configuring Ionic app with a configuration file\n\n* Install Ionic \n```\nnpm install -g cordova ionic@1.7.13\n```\n* Clone the repo \n```\n$ git clone https://github.com/IBM-Bluemix/feedbackapp-ionic-cloudant.git\n```\n* Open the unzipped folder in an IDE (I use Brackets) of your Choice and Navigate to **www/js** folder.\n* Create a new Javascript file **app.config** *With extension the file will be app.config.js*\n* Paste the below code in app.config.js,\n```\nangular.module('app').constant('CLOUDANTDB_CONFIG', {\n    baseUrl: 'https://\u003chostname\u003e',\n    dbName: '\u003cDBName\u003e',\n    userName: '\u003cusername\u003e',\n    password: '\u003cpassword\u003e'\n});\n```\n* DBName - Name of the Cloudant NoSQL DB your created on Dashboard 2.0.\n* For **hostname,username and password** - Navigate to the Cloudant Service page on Bluemix and Click on **Service Credentials** tab. \n* Click on **View Credentials** under Actions.\n\n|   placeholder\t|   Cloudant Service|\n|---\t|---\t|\n|  username \t|  username \t|\n|  password \t|  password \t|\n|  hostname  |  host      |\n  \nThe CLOUDANTDB_CONFIG constant values are utilised in **controllers.js**\n\n```\n// Define the Credentials string to be encoded.\n    var credentialstobeEncoded = CLOUDANTDB_CONFIG.userName + \":\" + CLOUDANTDB_CONFIG.password;\n\n    // Encode the String\n    var encodedString = Base64.encode(credentialstobeEncoded);\n    console.log(\"ENCODED: \" + encodedString);\n\n    $scope.createFeedback = function (feedback) {\n\n        $http({\n            method: 'POST',\n            url: CLOUDANTDB_CONFIG.baseUrl + \"/\" + CLOUDANTDB_CONFIG.dbName,\n            headers: {\n                'Content-Type': 'application/json',\n                'Authorization': 'Basic ' + encodedString\n            },\n```\n## Customize the App UI\n\n* Images can be replaced with the same name under **img** folder.\n* Customize the feedback fields in **feedback.html**\n* There are validations on the fields based on the type. E.g., Email checks for @ in the entry. **Submit** will be disabled until the form is completely valid.\n\n## Testing the App\n\nDesktop browser Testing \n\n```\n$ ionic serve\n```\nOn an iOS Simulator or Android Emulator \n```\n$ ionic emulate ios\n$ ionic emulate android\n```\n\u003cstrong\u003eNote: \u003c/strong\u003eFollow the \u003ca href=\"https://cordova.apache.org/docs/en/latest/guide/platforms/android\"\u003eAndroid\u003c/a\u003e and \u003ca href=\"https://cordova.apache.org/docs/en/latest/guide/platforms/ios\"\u003eiOS\u003c/a\u003e platform guides to install required tools for development.\n\u003ch3\u003eIf you see this Error\u003c/h3\u003e\n\u003cpre\u003eError: Cannot find module 'internal/fs'\n\nat Function.Module._resolveFilename (module.js:470:15)\n\nat Function.Module._load (module.js:418:25)\n\nat Module.require (module.js:498:17)\n\nat require (internal/module.js:20:19)\n\nat evalmachine.\u0026lt;anonymous\u0026gt;:18:20\n\nat Object.\u0026lt;anonymous\u0026gt; (/usr/local/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/vinyl-fs/node_modules/graceful-fs/fs.js:11:1)\n\nat Module._compile (module.js:571:32)\n\nat Object.Module._extensions..js (module.js:580:10)\n\nat Module.load (module.js:488:32)\n\nat tryModuleLoad (module.js:447:12)\n\nCannot find module 'internal/fs' (CLI v1.7.13)\u003c/pre\u003e\n\u003ch3\u003eResolution:\u003c/h3\u003e\n\u003cul\u003e\n \t\u003cli\u003eCheck Node version on your system\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"\"\u003enode -v\u003c/pre\u003e\n\u003cul\u003e\n \t\u003cli\u003eIf you see \u003cstrong\u003e\u0026nbsp;v7.5.0\u003c/strong\u003e, run the below commands one after another to add \u003cstrong\u003ev6\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"\"\u003eexport NVM_DIR=~/.nvm\nsource $(brew --prefix nvm)/nvm.sh\nnvm install 6\u003c/pre\u003e\n\u003ch3\u003eIf you see this error\u003c/h3\u003e\n\u003cdiv class=\"extra-info-wrapper\"\u003e\n\u003cdiv class=\"extra-info two-rows\"\u003e\n\u003cdiv class=\"title-wrapper\"\u003e\n\u003cpre class=\"\"\u003eError: Cannot read property ‘replace’ of undefined\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003ch3\u003eSolution:\u003c/h3\u003e\n\u003cpre class=\"\"\u003ecd platforms/ios/cordova/node_modules/\u003cbr\u003esudo npm install ios-sim@latest\u003c/pre\u003e\n\n*Notes*: \n* This sample uses only the POST HTTP API call of Cloudant Service. To understand other HTTP API Verbs, Refer [Cloudant Documentation](https://docs.cloudant.com/basics.html#http-api)\n* [Cloudant Client Libraries](https://docs.cloudant.com/libraries.html) \n\n## License\n\nSee [License.txt](https://github.com/IBM-Bluemix/feedbackapp-ionic-cloudant/blob/master/License.txt) for license information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibm-cloud%2Ffeedbackapp-ionic-cloudant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibm-cloud%2Ffeedbackapp-ionic-cloudant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibm-cloud%2Ffeedbackapp-ionic-cloudant/lists"}