The EnGauge App is a web app for teachers to monitor student comprehension in near real-time. Teachers create a new lesson, share a unique URL with their students, and watch as an animated chart displays and updates the class aggregate data. Students can submit feedback on a scale of 0-5 to report how comfortable they feel about the lesson material.
This app was built from scratch in one week as my final project of a 12 week coding course at General Assembly in San Francisco. As an exercise in coding, my goal was to build a “realtime” app that updated data dynamically with interesting data visualization. I also wanted to practice writing Javascript and Coffeescript and learn a new front-end framework (AngularJS), while building on my foundation in Ruby and Rails. Lastly, I hoped to fulfill a need demonstrated in General Assembly’s classrooms, to monitor student comprehension and engagement both during and after lectures.
See the app in action at: engaugenow.herokuapp.com To run the app locally, fork and clone this repo, bundle install, start a rails server and open at localhost:3000
Technologies Used:
-
AngularJS
-
Coffeescript
-
Javascript
-
Ruby on Rails
-
PostgreSQL
-
Raphael
-
JQuery
-
JustGage (www.justgage.com)
-
Devise
-
Angular UI Bootstrap
-
Twitter Bootstrap 3
-
long polling
-
Heroku
Notes on Version 1 (June 26, 2014): There are a few features that are not yet functional, which I will deploy in the coming weeks.
-
ACCESS CODES: There is not yet a feature to ask for and verify an access code. Anyone with the url can score that lesson.
-
LIMIT: There is currently no validation on the limit of scores that students are allowed to submit per hour
-
EXPIRATION: There is currently no validation on the expiration date (that the expiration date is later than today and later than
the lesson date; the expiration date does not prevent a user from submitting scores)
-
COMMENTS: I would like to allow each score to be submitted with a comment, required for scores under 2 and optional for scores greater than 2.
-
Testing: I plan to add Rspec and Jasmine tests
-
Refactoring: I realize that I need to DRY up my code and separate concerns in my angular controllers.
Please try my app and comment with suggestions!