{"id":24320140,"url":"https://github.com/badr-1/nasa-radar","last_synced_at":"2026-04-24T12:32:28.417Z","repository":{"id":64995846,"uuid":"555966363","full_name":"Badr-1/nasa-radar","owner":"Badr-1","description":"Advanced Android Kotlin Development Udacity Student Application - Part 2","archived":false,"fork":false,"pushed_at":"2023-01-28T05:42:23.000Z","size":2544,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T00:02:49.375Z","etag":null,"topics":["android","corutines","kotlin","moshi","nasa-api","picasso","restapi","retrofit","room"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Badr-1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-22T18:59:35.000Z","updated_at":"2023-04-09T15:16:44.000Z","dependencies_parsed_at":"2023-02-15T14:31:03.908Z","dependency_job_id":null,"html_url":"https://github.com/Badr-1/nasa-radar","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Badr-1/nasa-radar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Badr-1%2Fnasa-radar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Badr-1%2Fnasa-radar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Badr-1%2Fnasa-radar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Badr-1%2Fnasa-radar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Badr-1","download_url":"https://codeload.github.com/Badr-1/nasa-radar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Badr-1%2Fnasa-radar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32223933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["android","corutines","kotlin","moshi","nasa-api","picasso","restapi","retrofit","room"],"created_at":"2025-01-17T15:47:52.146Z","updated_at":"2026-04-24T12:32:28.402Z","avatar_url":"https://github.com/Badr-1.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Title\n\nAsteroid Radar\n\n## Getting Started\n\nAsteroid Radar is an app to view the asteroids detected by NASA that pass near Earth, you can view all the detected asteroids in a period of time, their data (Size, velocity, distance to Earth) and if they are potentially hazardous.\n\nThe app is consists of two screens: A Main screen with a list of all the detected asteroids and a Details screen that is going to display the data of that asteroid once it´s selected in the Main screen list. The main screen will also show the NASA image of the day to make the app more striking.\n\nThis kind of app is one of the most usual in the real world, what you will learn by doing this are some of the most fundamental skills you need to know to work as a professional Android developer, as fetching data from the internet, saving data to a database, and display the data in a clear, clear, compelling UI.\n\n### Screenshots\n\n![Screenshot 1](screenshots/screen_1.png)\n![Screenshot 2](screenshots/screen_2.png)\n![Screenshot 3](screenshots/screen_3.png)\n![Screenshot 4](screenshots/screen_4.png)\n\n### Dependencies\n\n```\nimplementation fileTree(dir: 'libs', include: ['*.jar'])\nimplementation \"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version\"\nimplementation 'androidx.appcompat:appcompat:1.1.0'\nimplementation 'androidx.core:core-ktx:1.2.0'\nimplementation 'androidx.constraintlayout:constraintlayout:1.1.3'\n\nimplementation \"androidx.lifecycle:lifecycle-extensions:2.2.0\"\n\nimplementation \"android.arch.navigation:navigation-fragment-ktx:1.0.0\"\nimplementation \"android.arch.navigation:navigation-ui-ktx:1.0.0\"\n\n// Download and parse data\nimplementation \"com.squareup.moshi:moshi:1.8.0\"\nimplementation \"com.squareup.moshi:moshi-kotlin:1.8.0\"\nimplementation \"com.squareup.retrofit2:retrofit:2.6.2\"\nimplementation \"com.squareup.retrofit2:converter-moshi:2.5.0\"\nimplementation 'com.squareup.retrofit2:converter-scalars:2.5.0'\n\n// Kotlin coroutines\nimplementation \"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0\"\nimplementation \"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0\"\nimplementation \"com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2\"\n\nimplementation \"androidx.recyclerview:recyclerview:1.1.0\"\n\n// Image downloader\nimplementation 'com.squareup.picasso:picasso:2.5.2'\n\nimplementation \"androidx.room:room-runtime:2.2.3\"\nkapt \"androidx.room:room-compiler:2.2.3\"\n\nimplementation \"android.arch.work:work-runtime-ktx:1.0.1\"\n\ntestImplementation 'junit:junit:4.12'\nandroidTestImplementation 'androidx.test.ext:junit:1.1.1'\nandroidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'\n```\n\n### Installation\n\nTo get the project running on your local machine, you need to follow these steps:\n\n**Step 1: Clone the repo**\n\nUse this to clone it to your local machine:\n```bash\ngit clone https://github.com/udacity/REPOSITORY_NAME.git\n```\n\n**Step 2: Check out the ‘master’ branch**\n\nThis branch is going to let you start working with it. The command to check out a branch would be:\n\n```bash\ngit checkout master\n```\n\n**Step 3: Run the project and check that it compiles correctly**\n\nOpen the project in Android Studio and click the Run ‘app’ button, check that it runs correctly and you can see the app in your device or emulator.\n\n## Testing\n\nExplain the steps needed to run any automated tests\n\n### Break Down Tests\n\nExplain what each test does and why\n\n```\nExamples here\n```\n## Project Instructions\n\nYou will be provided with a starter code, which includes the necessary dependencies and plugins that you have been using along the courses and that you are going to need to complete this project. \n\nThe most important dependencies we are using are:\n- Retrofit to download the data from the Internet.\n- Moshi to convert the JSON data we are downloading to usable data in form of custom classes.\n- Glide to download and cache images.\n- RecyclerView to display the asteroids in a list.\n\nWe recommend you following the guidelines seen in the courses, as well as using the components from the Jetpack library:\n- ViewModel\n- Room\n- LiveData\n- Data Binding\n- Navigation\n\nAndroid Studio could display a message to update Gradle plugin, or another thing like Kotlin, although it is recommended to have the last versions, it could be you have to do other things in order to make it work.\n\nThe application you will build must:\n- Include Main screen with a list of clickable asteroids as seen in the provided design.\n- Include a Details screen that displays the selected asteroid data once it’s clicked in the Main screen as seen in the provided design. The images in the details screen are going to be provided here, an image for a potentially hazardous asteroids and another one for the non potentially hazardous ones.\n- Download and parse data from the NASA NeoWS (Near Earth Object Web Service) API.\n- Save the selected asteroid data in the database using a button in details screen.\n- Once you save an asteroid in the database, you should be able to display the list of asteroids from web or the database in the main screen top menu.\n- Be able to cache the asteroids data by using a worker, so it downloads and saves week asteroids in background when device is charging and wifi is enabled.\n- App works in multiple screen sizes and orientations, also it provides talk back and push button navigation.\n\n\n## Built With\n\nTo build this project you are going to use the NASA NeoWS (Near Earth Object Web Service) API, which you can find here.\nhttps://api.nasa.gov/\n\nYou will need an API Key which is provided for you in that same link, just fill the fields in the form and click Signup.\n\n## License\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadr-1%2Fnasa-radar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadr-1%2Fnasa-radar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadr-1%2Fnasa-radar/lists"}