README
Source: https://github.com/yshmarov/edurge
Demo: https://edurge.herokuapp.com/
Admin can view all subscriptions, teacher can view subscriptions to his courses:
-
Users can log in +
-
Users can browse courses +
-
Users can subscribe to free courses +
-
Users can see the lesson content only of courses that they bought +
-
Users can review and rate courses that they bought +
-
Users can see their progress in a course +
-
Users can pay for courses (no payment system connected yet) -
-
Users-Teachers can create courses & lessons inside them +
-
Users-Teachers can see users that subscribed to their courses +
-
Users-Teachers can earn money on their courses (no payment system connected yet) -
-
Users-Admins can add categories +
-
Users-Admins can approve/unapprove courses (make courses available/unavailable) +
-
Users-Admins can view all subscriptions +
-
Users-Admins can view all users +
Roles [:admin, :teacher, :student]
Create Show Edit Destroy
User Owner All Owner Admin, Owner
Category Admin All Admin Admin
Course All All Owner Admin, Owner
Lesson Course owner Subscriber Owner Owner
Subscription Owner Admin Owner Admin, Owner
integrate a payments provider to actually pay for courses
lesson duration
- use youtube api, or whatever the video provider is to fetch video duration
make it a PWA (with rails 6)
rich text editing for course/description (with rails 6)
omniauth with google & facebook
add TAGS to courses
- rails g migration tags name
- rails g migration course_tags course:references tag:references
- Tags can be like ruby_on_rails, javascript, accounting, CEO, SMM, whatever
write tests! No tests have been written for the app
lesson options
- acts_as_votable (like/dislike)
- quizzes
ruby '2.6.5'
gem 'rails', '~> 5.2.3'
database: postgresql
git clone https://github.com/yshmarov/edurge
bundle install
rails db:drop db:create db:migrate
rails db:drop db:create db:migrate db:seed
rails s
If you don't want any user to be able to create own courses, you should comment the field in user.rb
:
self.add_role(:teacher)
to be like this
#self.add_role(:teacher)
Contact: yashm@outlook.com