A full-stack web application that helps meetup organizers prioritize questions to be answered.
-
HTML + CSS + JS - UI
-
NodeJS - JavaScript Run-time Environment
-
ExpressJS - Web Framework
-
Mocha and Chai - Test Framework And Assertion Library
-
Travis-CI - Continuous Integration Testing
-
Coveralls - Continuous Integration Test Coverage
-
Code Climate - Continuous Integration Code Quality
-
Heroku - Deployment. Visit The App
-
GitHub Pages - Front-End UI Hosting. Visit The App
-
SQL - Database Data Processing Language
-
PostgreSQL - Database System. Download And Install It
$ git clone https://github.com/placiderapson/questioner-with-node.js
$ npm install
$ PostgreSQL
$ Create a PostgreSQL database called 'questioner' for development
$ Create a PostgreSQL database called 'questioner-test' for testing
$ DB_HOST = "localhost"
$ DB_USER = "postgres"
$ DB_PASSWORD = "xxxxxxxxxx"
$ DB_NAME = "questioner"
$ DB_NAME_TEST = "questioner-test"
$ DB_PORT = 5000 (custom) or 5432 (default)
$ ADMIN_FIRSTNAME = "someone"
$ ADMIN_LASTNAME = "someone"
$ ADMIN_USERNAME = "someone"
$ ADMIN_EMAIL = "someone@email.com"
$ ADMIN_PASSWORD = "xxxxxxxxxx"
$ IS_ADMIN = "true"
$ SECRET_KEY = "xxxxxxxxxxx"
$ npm start
$ npm test
METHOD | ROUTE | DESCRIPTION |
---|---|---|
POST | api/v1/auth/signup | Create a user account |
POST | api/v1/auth/login | Log user in |
GET | api/v1/users | Retrieve all users |
GET | api/v1/users/id | Retrieve a specific user |
DELETE | api/v1/users/id | Delete a specific user |
POST | api/v1/meetups | Create a meetup record |
GET | api/v1/meetups | Retrieve all meetups |
GET | api/v1/meetups/id | Retrieve a specific meetup |
POST | api/v1/meetups/id/rsvps | Respond to a specific meetup |
GET | api/v1/meetups/upcoming | Retrieve upcoming meetups |
DELETE | api/v1/meetups/id | Delete a specific meetup |
POST | api/v1/meetups/id/questions | Create a question for a specific meetup |
PATCH | api/v1/questions/id/upvote | Upvote a specific question |
PATCH | api/v1/questions/id/downvote | Downvote a specific question |
PATCH | api/v1/questions/id | Retrieve questions for a specific meetup |
POST | api/v1/questions/id/comments | Comment on a specific question |
{
"status": "201",
"success": "meetup created",
"data": {
"topic": "JavaScript Hackathon",
"location": "Kigali Convention Center",
"happeningon": "2019-10-20T00:00:00.000Z",
"tags": [
"coding",
"nodejs"
],
"images": [
"image1",
"image2"
]
}
}
{
"status": "201",
"success": "meetup created",
"data": {
"topic": "Agile Methodology",
"location": "Kigali Heights",
"happeningon": "2019-05-04T00:00:00.000Z",
"tags": [
"scrum",
"kanban"
],
"images": [
"image1"
]
}
}
{
"status": "200",
"success": "meetups retrieved",
"meetup": [
{
"id": 1,
"createdon": "2019-02-05T14:03:55.496Z",
"location": "University of Rwanda - College of Science and Technology",
"images": [
"image1"
],
"topic": "Andela Learning Community 20",
"happeningon": "2019-03-15T00:00:00.000Z",
"tags": [
"developer",
"spectrum",
"andela"
],
"status": "ACTIVE"
},
{
"id": 2,
"createdon": "2019-02-05T14:05:27.106Z",
"location": "Fair View - Westerwel StartUp House",
"images": [
"image1",
"image2"
],
"topic": "Progate 30",
"happeningon": "2019-02-10T00:00:00.000Z",
"tags": [
"javascript",
"python"
],
"status": "ACTIVE"
},
{
"id": 3,
"createdon": "2019-02-05T14:07:27.258Z",
"location": "Telecom House",
"images": [
"image5"
],
"topic": "Andela Open Session",
"happeningon": "2019-05-22T00:00:00.000Z",
"tags": [
"fellowship",
"bootcamp",
"world-class developer"
],
"status": "ACTIVE"
},
{
"id": 6,
"createdon": "2019-02-05T20:04:18.191Z",
"location": "Kigali Convention Center",
"images": [
"image1",
"image2"
],
"topic": "JavaScript Hackathon",
"happeningon": "2019-10-20T00:00:00.000Z",
"tags": [
"coding",
"nodejs"
],
"status": "ACTIVE"
},
{
"id": 7,
"createdon": "2019-02-05T20:06:53.269Z",
"location": "Kigali Heights",
"images": [
"image1"
],
"topic": "Agile Methodology",
"happeningon": "2019-05-04T00:00:00.000Z",
"tags": [
"scrum",
"kanban"
],
"status": "ACTIVE"
}
]
}