Enhanced real-time classroom interaction and analytics
- Product Owner: Mike Yao
- Scrum Master: Andy Sponring
- Development Team Members: Austin Liu, David Trinh, Mike Yao, Andy Sponring
To view a live hosted instance of the app, visit this link.
You will be asked to login via GitHub. Once you have authorized the application, you will be taken to the main view for a student. When an instructor initiates a poll (either a thumbs check or a mini-quiz), this page will be updated with the poll.
If you would like to use the app as an instructor, you will need to add your GitHub user id to the 'instructors' object in Firebase. Contact the team for details.
- Node 0.10.x
- Express 4.x
- Firebase Instance (set up at www.firebase.com)
- Bower
We use an Angular client on top of a Firebase backend. We use the official Firebase integration with Angular, called AngularFire, to gain access to objects stored on Firebase and manage authentication.
Firebase is a 'backend as a service'. It allows us to write very little server-side code and is really nifty for syncing real-time data. Firebase is essentially a Mongo database that stores all data as JSON.
The very thin server we have is based on Node and Express.
The UI is based on Bootstrap.
Bower will install all the front-end dependencis for you. Grunt automates some tasks for us. Unit testing (just a stub for now) is done with Karma and uses Angular-Mocks (included in the Bower dependencies).
From within the root directory:
npm install -g grunt-cli
npm install
cd app
bower install
Create your own Firebase instance and change the Firebase URL in /app/scripts/angularfire/config.js. The Firebase URL is stored in the constant 'FBURL'.
The only required task in Firebase is to create a key called 'instructors'. The value of this key will be an object with keys in this format: 'github:{github_user_id}' (eg, 'github:123456). The value of this latter key should be a string containing the instructor's display name, eg "Fred Zirdung".
In the root directory:
grunt deploy
This will start a grunt process that watches all your client and server files for changes and restarts the server if changes are detected.
Now just open your browser to 'http://localhost:3000'.
Deploying your app using Firebase is a snap! From the root directory run:
grunt deploy --prod
You will be prompted to enter your Firebase login credentials. Once completed, just navigate to 'https://<your_app_name>.firebaseapp.com/' where 'your_app_name' is the name you configured in Firebase for your app. We used 'https://waffleup.firebaseapp.com/'.
View the project roadmap here.
See CONTRIBUTING.md for contribution guidelines.