All Projects → qlicker → qlicker

qlicker / qlicker

Licence: GPL-3.0 license
Open Source Clicker

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to qlicker

soak-your-brain-elearning-app
An e-learning platform built in python (django)
Stars: ✭ 18 (-21.74%)
Mutual labels:  classroom
github-classroom-utils
Python tools for instructors working with GitHub Classroom
Stars: ✭ 66 (+186.96%)
Mutual labels:  classroom
Academiccontent
Free tech resources for faculty, students, researchers, life-long learners, and academic community builders for use in tech based courses, workshops, and hackathons.
Stars: ✭ 2,196 (+9447.83%)
Mutual labels:  classroom
ouroom-project
A simple Classroom application to maintain your daily class stuffs.
Stars: ✭ 16 (-30.43%)
Mutual labels:  classroom
Remote-Work-and-Study-Resources
Free services, tools, articles and other resources for remote workers and distance learners
Stars: ✭ 49 (+113.04%)
Mutual labels:  classroom
where-is-my-hoca-client
React application à Where is my Hoca?
Stars: ✭ 23 (+0%)
Mutual labels:  classroom
classmanager-student-teacher-portal
A Student-Teacher Portal built using HTML, CSS, Python and Django
Stars: ✭ 155 (+573.91%)
Mutual labels:  classroom
meteor-elastic-apm
Meteor Elastic APM integration
Stars: ✭ 56 (+143.48%)
Mutual labels:  meteor
office-hours-help-queue
A queue to help manage office hours for large courses
Stars: ✭ 77 (+234.78%)
Mutual labels:  classroom
Apps Script Samples
Apps Script samples for Google Workspace products.
Stars: ✭ 3,301 (+14252.17%)
Mutual labels:  classroom
full-teaching
A web application to make teaching online easy. WARNING: the updated version of this repo is now in the link below
Stars: ✭ 34 (+47.83%)
Mutual labels:  classroom
schulcloud-client
HPI Schul-Cloud Client
Stars: ✭ 31 (+34.78%)
Mutual labels:  classroom
icebreaker
Web app that allows students to ask real-time, anonymous questions during class
Stars: ✭ 16 (-30.43%)
Mutual labels:  classroom
Moxo-Tech
Android智慧互动课堂(课堂辅助软件),包含client和server
Stars: ✭ 25 (+8.7%)
Mutual labels:  classroom
Timbr V1
A web service that turns an arbitrary web page into structural JSON data and easy-to-use APIs with just a few clicks
Stars: ✭ 50 (+117.39%)
Mutual labels:  meteor
full stack classroom july 2019
Class notes, code snippets, assignments, reading material for the full stack classroom batch of July 2019
Stars: ✭ 19 (-17.39%)
Mutual labels:  classroom
FlipED
A LMS built specifically for Thailand's Education 4.0 system.
Stars: ✭ 24 (+4.35%)
Mutual labels:  classroom
awesome-reactioncommerce
⚡️ A collection of awesome things regarding Reaction Commerce. Feel free to contribute!
Stars: ✭ 18 (-21.74%)
Mutual labels:  meteor
Cookie-Clicker-Source-Code
Cookie Clicker source code for... educational purposes...
Stars: ✭ 74 (+221.74%)
Mutual labels:  clicker
jitsi-box
A Raspberry Pi based box to automate holding hybrid conferences with Jitsi
Stars: ✭ 15 (-34.78%)
Mutual labels:  classroom

QLICKER

Open Source Clicker - CISC498

CircleCI GitHub issues GNU GPL v3 JavaScript Style Guide

JSDocs Documentation

Qlicker is an application that will make it easier for professors to integrate student participation in classes. This involves a mobile-capable web application that can be used by students on their own devices as an alternative to the very common and hardware based iClicker system.

overview

Using Qlicker

Visit User Guide

Running Qlicker

  1. Install meteor
curl https://install.meteor.com/ | sh 
  1. Clone the repo, and install the node packages.
meteor npm install

Note, if you use npm install instead of meteor npm install, you will need to manually delete the node_modules directory, and then run meteor npm install.

  1. Run the program.
meteor

To run tests locally npm run test:unit-watch or npm run test:app-watch

Development and Contributing

This application is built using the meteor web framework. Meteor is a node.js web framework that allows for tight integrator of server and client side javascript. It integrates with mongodb to provide seamless data model integration using pub-sub to automatically render changes on the client side. React was chosen over blaze and angular as the frontend user interface library.

When developing, please adhere to meteor and react opinions as well as following the Javascript Standard Code Style.

Changes will be merged into master after PR review.

Deployment

Build and bundle using meteor build. Deploy node app and configure mongodb accordingly.

Docker deployment

We provide a docker image of qlicker that is built using node:alpine as a base image. This docker image does not have mongo built in it. Access it at:

docker pull qlicker/qlicker:v1.2.2

To run the image, you must specify at least ROOT_URL and MONGO_URL environment variables (credentials here are presented using host environment variables):

docker run -d \
-e ROOT_URL=http://localhost:3000 \
-e MONGO_URL=mongodb://${DBADMINUSER}:${DBADMINPWD}@db:27017/${DBNAME}?replicaSet=${REPLICASETNAME} \
-e MONGO_OPLOG_URL=mongodb://${DBOLUSER}:${DBOLPWD}@db:27017/local?authSource=admin \
-e MAIL_URL=${MAIL_URL}\
-p 3000:3000 qlicker/qlicker:v1.2.2

You do not need to use a replicaset, or specifiy an oplog. The MAIL_URL is required if you want the app to be able to send emails (verify accounts in non-SSO setting, forgot password, etc.).

In production, you should of course place a proxy in front of the app container to enforce SSL.

You can build your own docker image as follows:

Clone the repository:

git clone https://github.com/qlicker/qlicker.git

Switch to a tagged version of the app

cd qlicker
git checkout v1.2.2

Build a bundle (in this case, it gets placed up a directory into the images/build directory):

meteor build ../image/build --server-only --architecture os.linux.x86_64

Create a Dockerfile in the directory ../images (if following above build command), so that the application tar file is located in build/

#FROM node:8.11.4-alpine #Qlicker up to 1.4.7
FROM node:12.16.3-alpine #Qlicker 1.5+ (meteor 1.9 requires node 12)
#Based on
#https://medium.com/@gary.ascuy/dockerize-deploy-meteor-app-using-docker-with-5-mo-the-force-awakens-d9c72d111198

ENV BUILD_PACKAGES="python make gcc g++ git libuv bash curl tar bzip2" \
    NODE_ENV=production \
    ROOT_URL=http://localhost:3000 \
    PORT=3000

WORKDIR /root/app/bundle

ADD ./build/app.tar.gz /root/app
RUN apk --update add ${BUILD_PACKAGES}
RUN (cd programs/server/ && npm install --unsafe-perm) \
    && apk --update del ${BUILD_PACKAGES}
    
RUN apk update && apk upgrade
EXPOSE 3000
CMD node main.js

Build the image:

docker build -t yourname/qlicker:v1.2.3 .

Run it as above

docker run -d \
-e ROOT_URL=http://localhost:3000 \
-e MONGO_URL=mongodb://${DBADMINUSER}:${DBADMINPWD}@db:27017/${DBNAME}?replicaSet=${REPLICASETNAME} \
-e MONGO_OPLOG_URL=mongodb://${DBOLUSER}:${DBOLPWD}@db:27017/local?authSource=admin \
-e MAIL_URL=${MAIL_URL}\
-p 3000:3000 yourname/qlicker:v1.2.3
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].