Skip to content

eLearning is one of the application ideas/designs earned by finishing the GoStack Bootcamp by Rocketseat.

Notifications You must be signed in to change notification settings

jgabriel1/e-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

e.Learning

This application is an online learning platform. It's made to offer courses courses any area in the form of video lectures.

Main Features

  • Pass a YouTube playlist url and register a course for that playlist automatically:

    This is achieved through an interface with the YouTube API to grab all videos informations, parse them and create the course and lesson entities accordingly inside the system.

  • Play YouTube videos on the mobile app:

    This is done through a webview created inside react native to display an embedded YouTube link.

  • Track progress of watched classes for any course and Save your favorite courses to watch later:

    These two are possible thanks to a local database created by the app inside the device. The app is then able to persist local data relevanto only to that user, which shouldn't be stored in the backend.

  • Filter throught the list of all courses to find courses by keywords:

    This is achieved by using a simple ILIKE query in the backend and finding the courses that contain the searched word in their names. Also, the same can be done in the local database by filtering through the favorite courses in a similar way but locally.

Technologies

The project has two main parts:

Back-end Server

The server will be powered by Python and the FastAPI framework. Some concepts of layer separation inspired by Domain Driven Design were applied to the backend code.

Deployment

The project is deployed to Heroku and can be found on: https://server-elearning.herokuapp.com/docs. This page also has the documentation and client auto-generated by FastAPI with the help of Swagger UI.

Mobile App

The mobile application will use React Native and Expo. It also uses the following stack of React-related technologies and some NodeJS libraries applied to the mobile app:

  • TypeScript
  • TypeORM + Expo-SQLite *
  • React Navigation
  • Styled Components

* In order to use the TypeORM + Expo-SQLite stack in a mobile environment in which the JavaScript engine is not the same as NodeJS and, on top of that, there is a compilation + minification step involved, some extra configuration steps had to be taken. I walk through them in detail in this post I wrote.

Deployment

The app was published to the Expo default publishing host and can be opened using the Expo App on either an iOS or an Android device. It is available on: https://expo.io/@jgabriel1/projects/e-learning

About

eLearning is one of the application ideas/designs earned by finishing the GoStack Bootcamp by Rocketseat.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published