/LearnLab

Primary LanguageJavaOtherNOASSERTION

LearnLab

LearnLab is an online learning platform where students can take timed assessments, learn and collaborate as a group. Instructors can monitor student/group performance in real-time and provide feedback.

####Application Link - http://learnlab.herokuapp.com/

##Installation

###Prerequisites

###Steps to run locally

  • Clone the repository
$ git clone https://github.com/dennyac/LearnLab.git
$ cd LearnLab
  • Make necessary changes in conf/application.conf for the database connection and Redis url. Enable the in-memory database connection, if you do not wish to choose MySQL/PostgreSQL.
  • Ensure Redis server is running
  • Issue the command
$ activator run

##Deployment Instructions

###Prerequisites

  • Heroku account
  • Heroku Toolbelt

###Steps to Deploy on Heroku Navigate to the directory that contains the git repository, and run the following commands

  • To create the application
$ heroku create
  • To add Redis addon for Publish/Subscribe messaging which is required for chat
$ heroku addons:add rediscloud
  • To deploy the application
$ git push heroku master
  • To open the application in a browser
$ heroku open

###Optional:

  • To add more dynos for scalability
$ heroku scale web=2
  • To rename the application
$ heroku apps:rename newname

##Special Thanks We have used the following reference applications as a starting point.

##Known Bugs/Issues

  • To view the entire live feeds of an event the instructor will have to log in and click the live feeds page before the event starts. If the instructor joins midway all pinned posts from event start time till the time that the instructor has viewed the page will not be rendered.
  • During the event, after the phase duration elapses, it will automatically move on to the next phase. Presently we have bypassed this validation, allowing users to move to the next phase before the duration elapses so that prospective users can get a sense of the application without having to wait for the entire duration.
  • All statistics have been computed with the assumption that all users have participated in the event.
  • The design is not responsive, so the UI may not be consistent across different browsers/devices. During development, we have used Chrome browser as reference.
  • Data inconsistency may cause errors in the application. For example, If a user quits an event half way through, some information related to later phases may not be captured, and this might cause issues when calculating and rendering stats. These issues have been handled in most cases.
  • For the graphs, there are cases where the scale might vary with the data, so this might cause issues when graphs are rendered.