t2dbabz / EduZone

GADS 2021: Community Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EduZone

EduZone is an android app that showcases educational courses of different categories that users can enroll in to learn new skills and upskill their skillsets. The app was built as part of Google Africa Developer Scholarship 2021 Community Projects to practice the various concepts of android development learnt during the program.

The app made use of the Udemy API to fetch courses the available on the Udemy Platform for users to enroll in. The users can also search for courses that they are interested in and also bookmark them to their local database on their devices.

The app showcases the MVVM architecture, android architecture components, best practices in android development and the use of some popular libraries like Retrofit and Coil

Screenshots

Home Screen Search Screen Bookmark Screen
Detail Screen Category Screen

Features

  • 100% Kotlin
  • MVVM Architecture
  • Android Architecture Components
  • Single Activity Pattern

Libraries

  • Retrofit RESTful API and networking client.
  • Coil - Image loading.
  • Android Architecture Components - A collections of libraries that help you design rebust, testable and maintainable apps.
    • Room - Local persistence database.
    • ViewModel - UI related data holder, lifecycle aware.
    • LiveData - Observable data holder that notify views when underlying data changes.
    • Navigation component - Fragment routing handler.
    • WorkManager - Tasks scheduler in background jobs. (Upcoming)
  • Coroutine Concurrency design pattern for asynchronous programming.

Architecture

MVVM Architecture

API Key

To make any calls to Udemy REST API, you will need to create an API client. Affiliate API client consists of a bearer token, which is connected to a user account on Udemy.

If you want to create an Affiliate API client, Sign up on www.udemy.com and go to API Clients page in your user profile. Once your Affiliate API client request is approved, your newly created Affiliate API client will be active and your bearer token will be visible on API Clients page.

To use use your YOUR_CLIENT_ID and YOUR_CLIENT_SECRET in this project

  1. Open your local.properties file that can be found in the root directory.
  2. Add new key value entry for your CLIENT_ID and CLIENT_SECRET like this example below in the local.properties
CLIENT_ID=nKfx5HnFnQRiuBETu3NR6fJdhHDl7RJeImtDvxfXFX
CLIENT_SECRET=Clg8QARs5Li2YLQD7KyhRpPsLpCSuWnFLOifZi2zbYM41rKU3qZt67IWBKy3NjzLm7UJaOeVt9AUSuylm7VdymwjyzTBdh0hy8UEankB7aGj1JURxgEiBwTLearaIkquY

then Build your project.

  1. Then in the MyInterceptor.kt file reference your CLIENT_ID and CLIENT_SECRET like this
val CLIENT_ID = BuildConfig.CLIENT_ID
val CLIENT_SECRET = BuildConfig.CLIENT_SECRET

About

GADS 2021: Community Project


Languages

Language:Kotlin 100.0%