Skip to content

ojasvishaklya/skill-enhancement-portal-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skill Enhancement Portal Telstra

This is the backend for Skill Enhancement Portal project. A brief description of the available APIs.

Authentication API Reference

Sign Up

  POST /auth/signup
Parameter Type Description
username string Required. Your username
email string Required. Your email id
password string Required. Password for your account
linkedin string Link to your linkedin profile
github string Link to your github account

Sign Up

  POST /auth/signin
Parameter Type Description
username string Required. Your username (Unique)
email string Required. Your email id
password string Required. Password for your account

Sign Out

  POST /auth/signout
Parameter Type Description
refreshToken string Required. Refresh token provided while sign in

Users API Reference

Get User Profile

  GET /users/{user_id}/profile
Parameter Type Description
user_id Long Required. User id to retrieve user's profile

Follow User

  POST /follow/{user_id}/
Parameter Type Description
user_id Long Required. User id to follow that user

Fet User Followers List

  GET /followers/{user_id}/
Parameter Type Description
user_id Long Required. User id to get that users's followers list

Fet User Following List

  GET /following/{user_id}/
Parameter Type Description
user_id Long Required. User id to get that users's following list

Mark User As Spam

  POST /spam/{user_id}/
Parameter Type Description
user_id Long Required. User id to mark user as spam

Get User Spam Count

  POST /spam/{user_id}/
Parameter Type Description
user_id Long Required. Get total number of spam reports of a user

Get User Notifications

  GET /notification/{user_id}/
Parameter Type Description
user_id Long Required. User Id to fetch user's notifications

Questions API Reference

Create Question

  POST /ques/
Parameter Type Description
postName string Required. Subject of your question
url string Any associated links with the question/Refrence to some other question
description string Required. Detailed description of your question
tag Tag Required. Appropriate tag/category for the question
Tag
Parameter Type Description
name string Required. Name of the tag

Search Question

  GET /ques/search
Parameter Type Description
text string Required. Your question query
tag Tag Required. Appropriate tag/category for the question

Vote a Question

  POST /ques/{question_id}/upvote
  POST /ques/{question_id}/downvote
Parameter Type Description
question_id string Required. Id of the question to vote for

List Trending Questions

  GET /ques/

Lists the top 10 trending question based on the number of comments and number of upvotes.

Delete a Question (Only Owner)

  DELETE /ques/{question_id}
Parameter Type Description
question_id string Required. Id of the question to be deleted

Comments API Reference

Create a Comment

  POST /comment/
Parameter Type Description
q_id string Required. Id of the question where we are posting comment
url string Any associated links with the comment/Refrence to some other question
text string Required. Description of your comment/answer

Vote a Comment

  POST /comment/{comment_id}/upvote
  POST /comment/{comment_id}/downvote
Parameter Type Description
comment_id string Required. Id of the comment to vote for

Select Comment as Answer (Only for question owner)

  POST /comment/{comment_id}/select

The owner of the question can select a particular comment as an acceptable solution to the question.

Delete a Comment (Only Owner)

  DELETE /comment/{comment_id}
Parameter Type Description
comment_id string Required. Id of the comment to be deleted

Features

  • Users can follow each other
  • Users get point for commenting, creating a question and getting there comment selected as answer.
  • Users can mark another user as spam and if the spam count for a particular goes above 20 that user wont be able to access his/her account
  • Full text search implemented to make question searching easier.

MySQl Tables

App Screenshot

Tech Stack

Server: Spring boot
Data Base: MySQL

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published