Skip to content

costiash/TEDiscover

Repository files navigation

TEDiscover

TEDiscover is an Android app that allows you to watch TED-talk videos directly from the app.
The content of each TED-talk is scraped in real-time from the TED website based on user queries, using simple scraping tools.
The app is linked to Firebase to manage users, so after signing up for TEDiscover, each user can create playlists,
like and save favorite talks, and view a history of all the talks that have been watched.
The user can perform a search on the Discover screen, with the option of adding filters to the search query.
The search can be based on the user's input, with or without additional filters.
The goal of this app was to practice writing Android apps in Kotlin using the Android mvvm architecture and Android Jetpack libraries
such as the Paging 3 library for infinite content scrolling and the Navigation library.
Furthermore, I attempted to adhere to the Common architectural principles outlined in Google's official Android Developers guides.

You can download an installation apk from here

Screenshots

Screenshot01 Screenshot02 Screenshot03 Screenshot04

Screenshot05 Screenshot06

IMPORTANT NOTES

First and foremost, this app's purpose is educational!! I do not own any of the TED content and have no intention of using it commercially. I didn't include my 'google-services.json' file because this app uses Firebase.
To use the app, you must first create your own file. You can find more information about it
here: https://nabeelj.medium.com/how-to-connect-your-android-app-to-firebase-7b2ccdc98f7e

Finally, because TED does not have a public API, I had to scrape the content from their website using scraping tools.
The 'Repo.kt' file in the project is the file that basically contains the methods for the actual scraping;
however, due to legal terms, I have omitted these methods from the shared code, despite the fact that the scraping is fairly simple, and I have used the following video to write them: https://www.youtube.com/watch?v=fe11mXSeJGo&t=1s