Skip to content
DONGFENG GU edited this page Oct 9, 2017 · 3 revisions


This project is a Ruby on Rails API server example for a tutoring APP (have not developed yet). There are two different kind of users in this project, Tutor and Student. Student can make an appointment request to tutor and tutor can reply to student in realtime. Once tutor accept the appointment, both student and tutor will enter a video conference room (using Twilio) within several seconds and they can talk to each other for several minutes. After that, student need to pay for this appointment and both student and tutor give reviews to each other.

Main Tools

  • Ruby on Rails
    • ActionCable (Real time communication)
    • ActiveRecord (Create model)
    • ActionController (Router and logic handler)
    • ActiveJob (Background job running)
    • I18n (Internationalization)
  • Twilio (Video conference)
  • Apipie (API documents)
  • Testing tools
    • Rspec
    • Simplecov (Test coverage check)

Application Processes

  1. Login
  2. Create an appointment
    • TUTOR: At least one tutor need to subscribe the tutor channel: app/cable_client/tutor_subscribe
    • STUDENT: Student subscribe to the student channel and make a request: app/cable_client/student_request
    • TUTOR: Response to the student request
    • SYSTEM: Send notification to both student and tutor saying that call will start in several seconds
    • SYSTEM: Initialize a Twilio video conference call and send the credential informations to both tutor and student
    • SYSTEM: Initialize the end calling active job that terminate the conference call in certain minutes
    • SYSTEM: Notify student and tutor before the call end
    • STUDENT: (OPTION) Renew the call
    • SYSTEM: Terminate the conference room

Deploy the project on your own server

  1. Make sure that you install the docker and docker-compose
  2. Follow the step in Docker wiki page

(To be continued)

You can’t perform that action at this time.