Skip to content

Debdyut/qa-platform-api

Repository files navigation

QA-Platform

Overview

The application serves as a platform for users to ask and answer questions, and, through membership and active participation, to vote questions and answers up or down similar to Reddit/Stack overflow and edit questions and answers

Users of application can earn reputation points and "badges" for example, a person is awarded 10 reputation points for receiving an "up" vote on a question or an answer to a question, and can receive badges for their valued contributions, which represents a gamification of the traditional Q&A website.

Users unlock new privileges with an increase in reputation like the ability to vote, comment, and even edit other people's posts.

Features

  1. A new user may register in the system using a valid email.
  2. The user may login to the system to access the platform features.
  3. The user may ask a question to the community.
  4. The user may answer a question asked by a fellow platform user.
  5. The user may browse through the questions on the platform.
  6. The user may see the answers for a question on the platform.

Additional features

  1. On login, user receives a time-limited token to access the platform features without re-entering the login credentials everytime.
  2. The user may update a question.
  3. The user may upvote an answer to a question.
  4. The user whose answer is upvoted, receives reputation points.
  5. Consumers of the platform can browse and test the APIs through Swagger-UI.

Technologies and libraries

  1. NodeJs
  2. ExpressJs
  3. Express-Validator
  4. Jsonwebtoken
  5. MongoDB
  6. Mongoose
  7. Morgan
  8. Swagger-UI

Code Structure

  • contract: This folder contains the platform api swagger contract.

  • app.js: Entry point for the nodejs application. Registers the routes and loads the configurations. Creates a listener for incoming requests.

  • src: This folder contains all the app source codes.

  • config: This module contains all the app configurations.

  • routes: This module contains all the request routes of the app.

  • controller: This module contains all the handlers for the requests.

  • model: This module contains all the MongoDb schemas.

  • error: This module contains custom error classes.

  • utils: This module contains all the app util implementations.

Folder Structure

License

Copyright 2022 Debdyut Hajra

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

NodeJs application for QA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published