/Questioner

Questioner is an app that crowd-sources questions for meetups. It allows meetup organizers to prioritize the questions to be answered. Users of this platform can upvote or downvote a question. The questions however, are ranked according to their votes.

Primary LanguageJavaScriptMIT LicenseMIT

Questioner

Questioner is an app that crowd-sources questions for meetups. It allows meetup organizers to prioritize the questions to be answered. Users of this platform can upvote or downvote a question. The questions however, are ranked according to their votes.

Build Status Coverage Status Maintainability

The UI Template

The template for the front end application can be found here UI Template

The Application

Questioner is an application that crowd-sources questions for meetups. It allows meetup organizers to prioritize the questions to be answered by allowing users of this platform to view a meetup, ask questions they would like to be answered during the meetup and other users can upvote or downvote a question. The questions however, are ranked according to their votes, the top questions are answered by the organizer during the meetup.

The main application is hosted here Questioner

Getting Stated


Technologies used in building this project

  • Node
  • Express
  • Gulp for scripts automation
  • PostgreSQL
  • TravisCI
  • JenkinsCI
  • Docker
  • Code Climate
  • Coveralls
  • Mocha, Chai and Chai-Http for integration testing
  • Sinon for unit testing
  • AWS RDS
  • Cloudinary
  • Heroku and AWS Elastic Beanstalk

Getting Started

Node

NPM

To download dependencies

npm install

To start application

npm start

To run tests

npm test

Pivotal Tracker Link

The Pivotal Tracker Story link can be found here PT stories

API Documentation

The documentation to this API can be found here API Documentation

Endpoints

User Roles


Register a User

A user can register so as to access to certain pages of the application by providing their username, email, and password while also confirming the provided password
The endpoint used here is POST api/v1/auth/signup

Sign In a User

An already registered user can log into the Questioner application by just providing the correct email and password.
The endpoint used here is GET api/v1/auth/signin

Reset Password

A user can reset their password by sending their email, email is verified and user is allowed to reset their password.

View all meetups

An existing user can view all available meetups on the Questioner application.
The endpoint for this is GET api/v1/meetups

View a specific meetup

A user can view all information about a particular endpoint.
The endpoint used here is api/v1/meetups/:id

Post a question

An existing user should be able to ask questions about an upcoming meetup. The endpoint used here is api/v1/questions

View a question

An existing user can view a particular question that has been posted by either them or another user. The endpoint used here is api/v1/questions/:id

View all questions that have been asked under a specific meetup

An existing user can view all questions that users have asked concerning a specific meetup. The endpoint here is api/v1/meetups/:id/questions

Upvote a specific question

An existing user can upvote a particular question. The endpoint used here is api/v1/questions/:questionId/upvote.

Downvote a question

An existing user can downvote a particular question. The endpoint used here is api/v1/questions/:questionId/downvote.

User can reset password

An existing user should be able to reset their password if they cannot remember it. The endpoint used here is api/v1/auth/resetpassword.

User can rsvp a meetup

An existing user can rsvp an upcoming meetup by stating either yes, no or maybe. The endpoint used here is api/v1/meetup/:meetupId/rsvp.

User can comment on a question record

An existing user can make a comment on a user's question under a meetup record. The endpoint used here is api/v1/questions/:questionId.

Admin Roles


Admin can create a meetup

An admin can post a meetup record for users view and use. The endpoint used here is api/v1/meetups.

Admin can delete a meetup

An admin can delete a meetup record, perhaps any meetup that has expired. The endpoint used here is api/v1/meetups/:meetupId.

Admin can add images

An admin can add images to a meetup record. The endpoint used here is api/v1/meetups/:meetupId.

Admin can add tags

An admin can add tags to a meetup record. The endpoint used here is api/v1/meetups/:meetupId.

Author : Bukola Omosefunmi