Giter Site home page Giter Site logo

berkmancenter / question_tool Goto Github PK

View Code? Open in Web Editor NEW
40.0 8.0 44.0 8.29 MB

A web application to propose and vote on questions on a particular subject.

Home Page: http://cyber.law.harvard.edu/questions/chooser.php

License: GNU General Public License v3.0

HTML 14.21% JavaScript 71.39% CSS 14.24% Dockerfile 0.07% Shell 0.09%

question_tool's Introduction

Question Tool

The question and answer tool is a real-time web application written in Meteor.js that allows anyone with a web browser and connection to the server to create a question/answer instance on a particular subject, propose a question, view other's questions, reply to questions and vote on questions on that particular subject.

For any server that is running the question tool software, any number of subject instances can be active at one time. All users of an instance see any actions performed on the instance at the same time (voting, posting of questions or responses, etc) thanks to the magic of Meteor.js.

Usage

The question tool was written to gather questions from an online audience and present them in a coherent and ordered way that communicates the communities interest in those questions by means of votes or responses.

The tool has various permission levels:

  • Server Admin: can rename or delete any instance, plus user privileges.
  • Instance Admin: can unhide questions, add moderators, delete or rename instance, plus moderator privileges.
  • Instance Moderator: can hide or merge questions, plus user privileges.
  • Registered User: can create instances, can favorite instances.
  • User: can post questions or replies as anonymous, pseudonymous, or signed.

By design, all instances are public - anyone with a web browser and connection to the server can view any instance, question or response, with the exception questions hidden by instance admins or moderators.

A user who is signed in can create an instance with a specific topic, after which web users can propose questions. Once the question is submitted, users can then vote on the question. Questions that are new, active or popular are pushed to the top. Users can also reply to questions.

Installation

  • Requirements: Mongo 2.6+, Node 0.10.36+

  • Install

    • git clone the repo
    • build the meteor application

    meteor build {output_dir} --directory

    • in the build directory, install node packages

    (cd programs/server && npm install)

    • create the mongo db and add necessary permissions
    • run the app
    export MONGO_URL='mongodb://app_user:[email protected]:27017/app_db'
    export MONGO_OPLOG_URL=mongodb://oplog_user:[email protected]:27017/local?authSource=admin
    export ROOT_URL='https://your.url.here'
    export HTTP_FORWARDED_COUNT=1
    export PORT=8000
    export MAIL_URL='smtp://user:password@mailhost:port/'
    export MAIL_ID_FROM='<email id of the smtp server>'
    node main.js
  • Setup

    Navigate to the /server/lib/startup.js file to set the email of the Question Tool superadmin (is able to delete/rename instances) and add a mail server URL for emailing. Superadmin must create a Question Tool account and be logged in with the specified email address for the superadmin priveleges.

Development

The only thing you need is Docker (https://docs.docker.com/install/).

  • Install Docker
  • Run docker-compose up and wait until it sets up everything
  • The app will be available on http://localhost:8888

Contributing

  1. Fork it!
  2. Check out the code style guide.
  3. Create your feature branch: git checkout -b my-new-feature
  4. Commit your changes: git commit -am 'Add some feature'
  5. Write tests for your code and run other tests as well: npm test
  6. Push to the branch: git push origin my-new-feature
  7. Submit a pull request!

History

The question tool has been used at the Berkman Center for Internet & Society for over 10 years. It has been used at events, in class rooms, in forums, in meetings, any place where it is valuable to obtain community consensus over the topics that need to be pursued.

Credits

  • Nick Rubin - everything technical
  • Jonathan Zittrain - the concept

License

QuestionTool is licensed under the GPL

Copyright

2015 President and Fellows of Harvard College

question_tool's People

Contributors

brainheart avatar harshjv avatar jdcc avatar jsdiaz avatar mariamrf avatar mzagaja avatar nrubin999 avatar peter-hank avatar salil-jain avatar singhsanket143 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

question_tool's Issues

Add Social Login services

It would be good, if there are some social login services like Facebook, Google, Github, etc for login or registration to the question tool.

How about showing related questions when posting a new question

Most of the time the same question can be duplicated since many are not interested going through all the questions before posting. But, when typing if the similar questions can be displayed, that would be minimized and would make user's life easier too.

New Feature -Search

Search in how many / what publications a registered user participated.
In a classroom enviroment, this feature is important

Refresh to see new questions.

Why do users have to press "Refresh" when a new question is posted? Shouldn't Meteor take care of updating that automatically?

Email Validation

Even though the email is not valid, one can register to the question tool just by adding "@" symbol.
Here an attached screenshot which shows the issue. The email entered is not valid still it is possible to register.
screenshot from 2018-03-12 10-24-23

UI

I can't refer to another question (within the instance) in a comment. A possible solution: a special character like @ or #. It's possible to relate content and avoid questions with the same meaning.

For example: in Moodle it's very common to have questions with the same meaning or related meaning.

Setup issue

Hi, I tried setting up the project locally, and on running npm install in the directory programs/server, I am facing this error. Any help would be appreciated.

OS: Ubuntu 18.04
Node version: v9.11.2
npm version: 6.4.1
meteor version: 1.4.1.1
> [email protected] install /home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers
> node build.js || nodejs build.js

make: Entering directory '/home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers/build'
  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:49:34: error: ‘WeakCallbackData’ in namespace ‘v8’ does not name a template type
  void WeakCallbackShim(const v8::WeakCallbackData<T, P>& data) {
                                  ^~~~~~~~~~~~~~~~
../src/fibers.cc:49:50: error: expected ‘,’ or ‘...’ before ‘<’ token
  void WeakCallbackShim(const v8::WeakCallbackData<T, P>& data) {
                                                  ^
../src/fibers.cc: In function ‘void uni::WeakCallbackShim(int)’:
../src/fibers.cc:50:5: error: ‘data’ was not declared in this scope
   F(data.GetParameter());
     ^~~~
../src/fibers.cc: In function ‘v8::Handle<v8::String> uni::NewLatin1String(v8::Isolate*, const char*)’:
../src/fibers.cc:102:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromOneByte(v8::Isolate*, const uint8_t*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   return String::NewFromOneByte(isolate, (const uint8_t*)string);
                                                                ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:2731:21: note: declared here
       Local<String> NewFromOneByte(Isolate* isolate, const uint8_t* data,
                     ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In function ‘v8::Handle<v8::String> uni::NewLatin1Symbol(v8::Isolate*, const char*)’:
../src/fibers.cc:106:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromOneByte(v8::Isolate*, const uint8_t*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   return String::NewFromOneByte(isolate, (const uint8_t*)string);
                                                                ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:2731:21: note: declared here
       Local<String> NewFromOneByte(Isolate* isolate, const uint8_t* data,
                     ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::New(const Arguments&)’:
../src/fibers.cc:423:99: warning: ‘v8::Local<v8::Object> v8::Function::NewInstance(int, v8::Local<v8::Value>*) const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     return uni::Return(uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction()->NewInstance(1, argv), args);
                                                                                                   ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3894:31: note: declared here
                 Local<Object> NewInstance(int argc, Local<Value> argv[]) const);
                               ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static void Fiber::RunFiber(void**)’:
../src/fibers.cc:611:14: warning: ‘v8::TryCatch::TryCatch()’ is deprecated: Use isolate version [-Wdeprecated-declarations]
     TryCatch try_catch;
              ^~~~~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:8394:40: note: declared here
   V8_DEPRECATED("Use isolate version", TryCatch());
                                        ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static void Fiber::SetPoolSize(v8::Local<v8::String>, v8::Local<v8::Value>, const SetterCallbackInfo&)’:
../src/fibers.cc:731:43: warning: ‘v8::Local<v8::Number> v8::Value::ToNumber() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    Coroutine::pool_size = value->ToNumber()->Value();
                                           ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:9853:15: note: declared here
 Local<Number> Value::ToNumber() const {
               ^~~~~
../src/fibers.cc: In static member function ‘static void Fiber::Init(v8::Handle<v8::Object>)’:
../src/fibers.cc:785:72: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "current"), GetCurrent);
                                                                        ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc:786:87: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "poolSize"), GetPoolSize, SetPoolSize);
                                                                                       ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc:787:84: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "fibersCreated"), GetFibersCreated);
                                                                                    ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In instantiation of ‘void uni::MakeWeak(v8::Isolate*, v8::Persistent<T>&, P*) [with void (* F)(void*) = Fiber::WeakCallback; T = v8::Object; P = void]’:
../src/fibers.cc:341:60:   required from here
../src/fibers.cc:55:3: error: no matching function for call to ‘v8::Persistent<v8::Object>::SetWeak(void*&, <unresolved overloaded function type>)’
   handle.SetWeak(val, WeakCallbackShim<F>);
   ^~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:546:18: note: candidate: template<class P> void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = P; T = v8::Object]
   V8_INLINE void SetWeak(P* parameter,
                  ^~~~~~~
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:546:18: note:   template argument deduction/substitution failed:
../src/fibers.cc:55:3: note:   candidate expects 3 arguments, 2 provided
   handle.SetWeak(val, WeakCallbackShim<F>);
   ^~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:557:18: note: candidate: void v8::PersistentBase<T>::SetWeak() [with T = v8::Object]
   V8_INLINE void SetWeak();
                  ^~~~~~~
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:557:18: note:   candidate expects 0 arguments, 2 provided
fibers.target.mk:108: recipe for target 'Release/obj.target/fibers/src/fibers.o' failed
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
make: Leaving directory '/home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:180:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Linux 4.15.0-45-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers
gyp ERR! node -v v9.11.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++`
Alpine users please run: `sudo apk add python make g++`
make: Entering directory '/home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers/build'
  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:49:34: error: ‘WeakCallbackData’ in namespace ‘v8’ does not name a template type
  void WeakCallbackShim(const v8::WeakCallbackData<T, P>& data) {
                                  ^~~~~~~~~~~~~~~~
../src/fibers.cc:49:50: error: expected ‘,’ or ‘...’ before ‘<’ token
  void WeakCallbackShim(const v8::WeakCallbackData<T, P>& data) {
                                                  ^
../src/fibers.cc: In function ‘void uni::WeakCallbackShim(int)’:
../src/fibers.cc:50:5: error: ‘data’ was not declared in this scope
   F(data.GetParameter());
     ^~~~
../src/fibers.cc: In function ‘v8::Handle<v8::String> uni::NewLatin1String(v8::Isolate*, const char*)’:
../src/fibers.cc:102:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromOneByte(v8::Isolate*, const uint8_t*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   return String::NewFromOneByte(isolate, (const uint8_t*)string);
                                                                ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:2731:21: note: declared here
       Local<String> NewFromOneByte(Isolate* isolate, const uint8_t* data,
                     ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In function ‘v8::Handle<v8::String> uni::NewLatin1Symbol(v8::Isolate*, const char*)’:
../src/fibers.cc:106:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromOneByte(v8::Isolate*, const uint8_t*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   return String::NewFromOneByte(isolate, (const uint8_t*)string);
                                                                ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:2731:21: note: declared here
       Local<String> NewFromOneByte(Isolate* isolate, const uint8_t* data,
                     ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::New(const Arguments&)’:
../src/fibers.cc:423:99: warning: ‘v8::Local<v8::Object> v8::Function::NewInstance(int, v8::Local<v8::Value>*) const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     return uni::Return(uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction()->NewInstance(1, argv), args);
                                                                                                   ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3894:31: note: declared here
                 Local<Object> NewInstance(int argc, Local<Value> argv[]) const);
                               ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static void Fiber::RunFiber(void**)’:
../src/fibers.cc:611:14: warning: ‘v8::TryCatch::TryCatch()’ is deprecated: Use isolate version [-Wdeprecated-declarations]
     TryCatch try_catch;
              ^~~~~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:8394:40: note: declared here
   V8_DEPRECATED("Use isolate version", TryCatch());
                                        ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static void Fiber::SetPoolSize(v8::Local<v8::String>, v8::Local<v8::Value>, const SetterCallbackInfo&)’:
../src/fibers.cc:731:43: warning: ‘v8::Local<v8::Number> v8::Value::ToNumber() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    Coroutine::pool_size = value->ToNumber()->Value();
                                           ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:9853:15: note: declared here
 Local<Number> Value::ToNumber() const {
               ^~~~~
../src/fibers.cc: In static member function ‘static void Fiber::Init(v8::Handle<v8::Object>)’:
../src/fibers.cc:785:72: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "current"), GetCurrent);
                                                                        ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc:786:87: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "poolSize"), GetPoolSize, SetPoolSize);
                                                                                       ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc:787:84: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
    fn->SetAccessor(uni::NewLatin1Symbol(isolate, "fibersCreated"), GetFibersCreated);
                                                                                    ^
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/v8.h:26:0,
                 from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:3227:22: note: declared here
                 bool SetAccessor(Local<String> name,
                      ^
/home/mishal23/.node-gyp/9.11.2/include/node/v8config.h:318:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/fibers.cc: In instantiation of ‘void uni::MakeWeak(v8::Isolate*, v8::Persistent<T>&, P*) [with void (* F)(void*) = Fiber::WeakCallback; T = v8::Object; P = void]’:
../src/fibers.cc:341:60:   required from here
../src/fibers.cc:55:3: error: no matching function for call to ‘v8::Persistent<v8::Object>::SetWeak(void*&, <unresolved overloaded function type>)’
   handle.SetWeak(val, WeakCallbackShim<F>);
   ^~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:546:18: note: candidate: template<class P> void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = P; T = v8::Object]
   V8_INLINE void SetWeak(P* parameter,
                  ^~~~~~~
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:546:18: note:   template argument deduction/substitution failed:
../src/fibers.cc:55:3: note:   candidate expects 3 arguments, 2 provided
   handle.SetWeak(val, WeakCallbackShim<F>);
   ^~~~~~
In file included from /home/mishal23/.node-gyp/9.11.2/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:557:18: note: candidate: void v8::PersistentBase<T>::SetWeak() [with T = v8::Object]
   V8_INLINE void SetWeak();
                  ^~~~~~~
/home/mishal23/.node-gyp/9.11.2/include/node/v8.h:557:18: note:   candidate expects 0 arguments, 2 provided
fibers.target.mk:108: recipe for target 'Release/obj.target/fibers/src/fibers.o' failed
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
make: Leaving directory '/home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:180:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Linux 4.15.0-45-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /home/mishal23/Projects/GSOC/berkmancenter/question_tool/build/bundle/programs/server/node_modules/fibers
gyp ERR! node -v v9.11.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++`
Alpine users please run: `sudo apk add python make g++`
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node build.js || nodejs build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/mishal23/.npm/_logs/2019-03-03T12_08_05_321Z-debug.log

GSoC 2017

Hello
I'm interested to contribute to this project as a part of GSoC 2017. I'm having a good experience working with MeteorJS. I'd like to know the possible sub-projects(if any) for this project which can be carried out as a project in GSoC 2017.

propose android app for question tool

as most of the students these days have mobile phones and most of them are android i would like to propose an android app for the question tool to give a better experience than the website.
i would like to know if this idea is fit for to propose in gsoc 2018
Thank you

Port to React and improve UI/UX

The question tool can be ported to react, much better and popular stack.
UI for the tool is quite static which can be further enhanced.

Autherization , PWA services can be added as well

Upvote button not working

The feature to upvote a question is currently not working.Nothing happens when the upvote button is clicked.

What about having archive/delete button to questions

For an example, when an instance is used in a workshop, when many people post questions one after the other, the list become huge and then, having a delete or archive functionality would be really nice to have the questions list cleaned.

Changes in Installation guidelines required

I have been trying to install this on my computer for a while and I am facing some issues.

  • The version of MeteorJS to be used is not defined(probably 1.4.2.1).
  • Node's version should be less than or equal to 6.
  • External installation of babel-runtime is required to resolve the error(Most probably) refer this.
  • Also, installation of meteor behind a proxy server might create an error(It did in my case).

PS - I am still not successful in installing it but these changes will help any newcomer.

Data Analytics not implemented

Analytics and infographics about the number of active users, number of questions asked and polls answered should be available to the admins and moderators.

New feature - Post

It has sense add the possibility to response a specified question.. I mean, if i want discuss with someone, there is not a thread to follow. Like Twitter

unable to upvote

Hey, there seems to be an issue during upvoting by users other than the one who created the question. Can someone have a look at that? Thanks

Few suggestions to votings

image

Since the reply button is next to vote count, it's seen like the number of comments and even the down arrow looks like an expand.

Forget Password

There is no way to recover my lost password. What is someone lost his password?
forget

recent questions in an organized manner

I see that the questions that have been posted in the recent submitted questions appear in random order.
They should be appearing in a chronological order so that it is easy to trace questions for the students based on the date and time.

confusion in sharing questions

the facebook and twitter sharing link is available in every question but the link generated using these are actually the link of an instance, not of question. after clicking that link that particular question must be highlighted. this gives so confusion when the numbers of questions increases in a particular instance.

Unable to install npm packages

I keep getting the error:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node build.js || nodejs build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

I have Node 8.9.4 LTS and am on Ubuntu 16.0.4 Xenial Xerus.

Error message displayed while creating new instance is misleading

The valid instance name should contain 4 to 30 alphanumeric characters (only numbers and alphabets), without any spaces. The error message displayed on entering an invalid instance name is “Please enter a valid instance name using only letters and numbers, no spaces.”
This can be confusing when a user tries to enter instance name of less than 4 characters, as the instance name entered by user would be valid as per the error message.

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.