Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakazzy/questioner-1
Questioner helps meetup organisers crowd-source questions to be asked concerning the meetup and help them prioritize questions that should be answered based on votes by other attendees.
https://github.com/jakazzy/questioner-1
Last synced: 17 days ago
JSON representation
Questioner helps meetup organisers crowd-source questions to be asked concerning the meetup and help them prioritize questions that should be answered based on votes by other attendees.
- Host: GitHub
- URL: https://github.com/jakazzy/questioner-1
- Owner: jakazzy
- Created: 2019-10-04T06:24:58.000Z (about 5 years ago)
- Default Branch: develop
- Last Pushed: 2019-03-03T21:09:01.000Z (over 5 years ago)
- Last Synced: 2024-10-20T07:41:20.376Z (19 days ago)
- Homepage: https://cupidcoder.github.io/questioner/UI
- Size: 2.42 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Questioner · [![Build Status](https://travis-ci.org/cupidcoder/questioner.svg?branch=develop)](https://travis-ci.org/cupidcoder/questioner) [![Coverage Status](https://coveralls.io/repos/github/cupidcoder/questioner/badge.svg?branch=develop)](https://coveralls.io/github/cupidcoder/questioner?branch=develop) [![Maintainability](https://api.codeclimate.com/v1/badges/d4c093b47b636c5942fc/maintainability)](https://codeclimate.com/github/cupidcoder/questioner/maintainability) [![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)
> Questioner helps meetup organisers crowd-source questions to be asked concerning the meetup and help them prioritize questions that should be answered based on votes by other attendees.
---
## Implemented Features
- Users can register on the application
- Users can log into the application
- Users can create a meetup entry
- Users can fetch all meetup entries created in the system
- Users can fetch a specific meetup entry
- Users can fetch all upcoming meetup entries
- Users can respond to attend a meetup
- Users can post question to a meetup
- Users can upvote a question
- Users can downvote a question
- Users can comment on a question
- Admin Users can delete meetup
- Admin Users can add tags to a meetup
- Admin Users can add images to a meetup
- Users can see all questions asked on a meetup
- Users can see all comments made to a question
- Admin User or question owner can delete question
- Admin User or comment owner can delete comment
---## Templates
UI template for the application is hosted on [Github pages](https://cupidcoder.github.io/questioner/UI)---
## Technologies Used
- [Node.js](https://nodejs.org/) - A runtime environment based off of Chromes's V8 Engine for writing Javascript server-side applications.
- [Express.js](https://expressjs.com/) - Web application framework based on Node.js.
- [ESLint](https://eslint.org/) - A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript.
- [Airbnb](https://www.npmjs.com/package/eslint-config-airbnb) style guide was followed.
- [PostgreSQL](https://www.postgresql.org/) - Relational Database System used in project.
- [JWT](https://www.npmjs.com/package/jsonwebtoken) used to authorize and authenticate API routes.---
## Testing Tools
- [Mocha](#https://mochajs.org/) - A JavaScript test framework.
- [Chai](https://chaijs.com) - A test assertion library for JavaScript.---
## API Information
The API endpoints are hosted on [Heroku](#https://heroku.com) - https://questioner40.herokuapp.com/api/v1/
API documentation was created using Swagger-UI and can be viewed at [API Documentation](https://cupidcoder.github.io/questioner/UI/views/docs/v1) - https://cupidcoder.github.io/questioner/UI/views/docs/v1
METHOD | DESCRIPTION | ENDPOINTS
-------|-------------|-----------
POST | User registration | `/api/v1/auth/signup`
POST | User log in | `/api/v1/auth/signin`
POST | Create a meetup record | `/api/v1/meetups`
GET | Get all meetup records | `/api/v1/meetups`
GET | Get specific meetup record | `/api/v1/meetups/:meetupID`
GET | Get all upcoming meetup records | `/api/v1/meetups/upcoming`
DELETE | Delete meetup record | `/api/v1/meetups/:meetupID`
POST | Respond to a meetup | `/api/v1/meetups/:meetupID/rsvp`
POST | Post a question to a meetup | `/api/v1/questions`
POST | Post a comment to a question | `/api/v1/comments`
PATCH | Upvote a question | `/api/v1/questions/:questionID/upvote`
PATCH | Downvote a question | `/api/v1/questions/:questionID/downvote`
PATCH | Add tags | `/api/v1/meetups/:meetupID/tags`
PATCH | Add images | `/api/v1/meetups/:meetupID/images`
GET | Get all meetup questions | `/api/v1/meetups/:meetupID/questions`
GET | Get all question comments | `/api/v1/questions/:questionID/comments`
DELETE | Delete question | `/api/v1/questions/:questionID`
DELETE | Delete comment | `/api/v1/comments/:commentID`---
## Installation- You need to have `node` and `npm` installed on your computer
- You may click [Node.js](https://nodejs.org) to get `node` and `npm`#### Clone
- Clone this repo to your local machine using `git clone https://github.com/cupidcoder/questioner.git`
#### Database Credentials
- Create a new PostgreSQL database and user. Also ensure to grant all database privileges to the user.
#### Environment variables
- Create a `.env` file using the contents in the `.env.example` file, replacing the placeholder with actual values
#### Setup
- Installing the project's dependencies:
> run the command below
```shell
$ npm install
```> To start the server, run the command below
```shell
$ npm start
```> Consume endpoints at `http://localhost:7000/api/v1`
---
## Test
> run test using the command below
```shell
$ npm test
```---
## Acknowledgements
* Andela
## Author
* Chukwudi Dennis Umeilechukwu