Giter Club home page Giter Club logo

determinedwaffle's Introduction

Stories in Ready

Thumbs Check

Enhanced real-time classroom interaction and analytics

Team

  • Product Owner: Mike Yao
  • Scrum Master: Andy Sponring
  • Development Team Members: Austin Liu, David Trinh, Mike Yao, Andy Sponring

Table of Contents

  1. Usage
  2. Requirements
  3. Tech Stack
  4. Development
    1. Installing Dependencies
    2. Set up Firebase
    3. Start local server
    4. Deploy to production
  5. Team
  6. Contributing

Usage

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.

Requirements

Tech stack

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).

Development

Installing Dependencies

From within the root directory:

npm install -g grunt-cli
npm install
cd app
bower install

Set up Firebase

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".

Start local server

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'.

Deploy to production

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 the name you configured in Firebase for your app. We used 'https://waffleup.firebaseapp.com/'.

Roadmap

View the project roadmap here.

Contributing

See CONTRIBUTING.md for contribution guidelines.

determinedwaffle's People

Contributors

asponring avatar davedh2 avatar berkana avatar mikeyao avatar hackreactor-students avatar waffle-iron avatar

Watchers

James Cloos avatar Vincent Tam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.