{"id":23053220,"url":"https://github.com/vukan-markovic/news9","last_synced_at":"2026-05-05T07:32:13.651Z","repository":{"id":133200374,"uuid":"365526544","full_name":"vukan-markovic/news9","owner":"vukan-markovic","description":"App for reading news created in Flutter using News API and Firebase authentication","archived":false,"fork":false,"pushed_at":"2021-05-09T15:49:36.000Z","size":1348,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-03T04:27:07.976Z","etag":null,"topics":["flutter","flutter-android","flutter-app","flutter-apps","flutter-bloc","flutter-bloc-pattern","flutter-desktop","flutter-firebase","flutter-firebase-auth","flutter-http","flutter-image-picker","flutter-ios","flutter-localization","flutter-material","flutter-provider","flutter-rxdart","flutter-shared-preferences","flutter-web","google-sign-in","hive-database"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/vukan-markovic.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":"2021-05-08T13:52:22.000Z","updated_at":"2022-09-13T00:05:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"c503b74a-c201-4bd6-8226-da9e594eff1a","html_url":"https://github.com/vukan-markovic/news9","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vukan-markovic/news9","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vukan-markovic%2Fnews9","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vukan-markovic%2Fnews9/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vukan-markovic%2Fnews9/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vukan-markovic%2Fnews9/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vukan-markovic","download_url":"https://codeload.github.com/vukan-markovic/news9/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vukan-markovic%2Fnews9/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32640533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"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":["flutter","flutter-android","flutter-app","flutter-apps","flutter-bloc","flutter-bloc-pattern","flutter-desktop","flutter-firebase","flutter-firebase-auth","flutter-http","flutter-image-picker","flutter-ios","flutter-localization","flutter-material","flutter-provider","flutter-rxdart","flutter-shared-preferences","flutter-web","google-sign-in","hive-database"],"created_at":"2024-12-16T00:16:56.750Z","updated_at":"2026-05-05T07:32:13.646Z","avatar_url":"https://github.com/vukan-markovic.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# News9\nInternship project - Flutter - April 2021\n\nThe main goal of this project was to provide users a way to sign up, sign in to the application, see the list of news, open and read news, browse news by date, categories, sources, keywords, etc., save favorite ones and see them later.\n\nUsed [News API](https://newsapi.org/) for fetching news and [Firebase](https://firebase.google.com/) for authentication.\n\nSupport mobile (Android \u0026 IOS), web, and desktop (macOS) app.\n\n![1](https://i.ibb.co/Db1rJk7/1.png) ![2](https://i.ibb.co/mXKD1cb/2.png) ![3](https://i.ibb.co/L8BtGdg/3.png) \n\n![4](https://i.ibb.co/CzLJNR4/4.png) ![5](https://i.ibb.co/dDVgQPc/5.png) ![6](https://i.ibb.co/6W1x3z5/6.png)\n\n![7](https://i.ibb.co/zRxmsgD/7.png) ![8](https://i.ibb.co/BVr43SV/8.png) ![9](https://i.ibb.co/D8bjhLW/9.png)\n\n![10](https://i.ibb.co/F04GG0H/10.png) ![11](https://i.ibb.co/tHt9src/11.png)\n\n## Getting Started\n\n1. [Setup Flutter](https://flutter.dev/docs/get-started/install)\n\n1. Clone the repo\n    \n    ```\n    $ git clone https://github.com/Vukan-Markovic/news9.git\n    $ cd news9\n    ```\n\n1. Setup Firebase app\n\n   1. You'll need to create a Firebase instance. Follow the instructions at [Firebase console](https://console.firebase.google.com/).\n\n   1. Once your Firebase instance is created, you'll need to enable Google and Email/Password authentication:\n    \n      * Go to the Firebase Console for your new instance\n      * Click \"Authentication\" in the left-hand menu\n      * Click the \"Sign-in method\" tab\n      * Click \"Google\" and enable it\n      * Click \"Email/Password\" and enable it.\n\n   1. For Android:\n\n      * Create an app within your Firebase instance for Android, with same package name as this app.\n        \n      * Run the following command to get your SHA-1 key:\n         ```\n         keytool -exportcert -list -v \\\n         -alias androiddebugkey -keystore ~/.android/debug.keystore\n         ```\n                \n         * In the Firebase console, in the settings of your Android app, add your SHA-1 key by clicking \"Add Fingerprint\".\n\n         * Follow instructions to download `google-services.json`.\n \n         * Place `google-services.json` into `news9/android/app/`.\n\n   1. For IOS:\n\n         * Create an app within your Firebase instance for iOS, with same package name as this app.\n\n         * Follow instructions to download `GoogleService-Info.plist`, and place it into `news9/ios/Runner` in XCode.\n\n         * Open `news9/ios/Runner/Info.plist`. Locate the second CFBundleURLSchemes key. The item in the array value of this key is specific to the Firebase instance. Replace it with the value for REVERSED_CLIENT_ID from `GoogleService-Info.plist`.\n\n   1. For macOS:\n\n         * Place same `GoogleService-Info.plist` into `news9/macos/Runner` in XCode.\n    \n   1. For Web:\n\n         * Create an app within your Firebase instance for web, with same package name as this app.\n\n         * Create file `firebase_config.js` at `news9/web` and follow instructions to initialize firebase config variable for the web here.\n\n1. Run the app\n\n   ```\n   $ flutter run\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvukan-markovic%2Fnews9","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvukan-markovic%2Fnews9","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvukan-markovic%2Fnews9/lists"}