All Projects → darthgera123 → QuizApp

darthgera123 / QuizApp

Licence: other
Quiz Portal with backend in Go and Gin while frontend in React

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to QuizApp

gjango
golang gin with go-pg orm
Stars: ✭ 41 (+86.36%)
Mutual labels:  gin-gonic
fakerfactory
伪造数据的API服务
Stars: ✭ 53 (+140.91%)
Mutual labels:  gin-gonic
GoGonicEcommerceApi
Ecommerce Rest API application built in Go with Gin Gonic + Gorm
Stars: ✭ 81 (+268.18%)
Mutual labels:  gin-gonic
ginhelper
gin framework helper
Stars: ✭ 16 (-27.27%)
Mutual labels:  gin-gonic
creatly-backend
🚀 Creatly backend app
Stars: ✭ 71 (+222.73%)
Mutual labels:  gin-gonic
geo-smart-system
Open Source Realtime Tracking System
Stars: ✭ 36 (+63.64%)
Mutual labels:  gin-gonic
requestid
Request ID middleware for Gin Framework
Stars: ✭ 115 (+422.73%)
Mutual labels:  gin-gonic
gin-swagger
DRY templates for go-swagger
Stars: ✭ 79 (+259.09%)
Mutual labels:  gin-gonic
website
Official website and document for Gin
Stars: ✭ 88 (+300%)
Mutual labels:  gin-gonic
go-12factor-example
Example the 12factor app using golang
Stars: ✭ 20 (-9.09%)
Mutual labels:  gin-gonic
logger
Gin middleware/handler to logger url path using rs/zerolog
Stars: ✭ 119 (+440.91%)
Mutual labels:  gin-gonic
clean-gin
Implementation of clean architecture in Go, Gin with dependency injection.
Stars: ✭ 181 (+722.73%)
Mutual labels:  gin-gonic
go-todo-app
Go + Angular Todo App
Stars: ✭ 21 (-4.55%)
Mutual labels:  gin-gonic
go-gin-logrus
Gin Web Framework for using Logrus as the Gin logger with Tracing middleware
Stars: ✭ 38 (+72.73%)
Mutual labels:  gin-gonic
gin-rest-api
Example golang using gin framework everything you need, i create this tutorial special for beginner.
Stars: ✭ 56 (+154.55%)
Mutual labels:  gin-gonic
go api boilerplate
🐶Go (Golang)🚀REST / GraphQL API + Postgres boilerplate
Stars: ✭ 127 (+477.27%)
Mutual labels:  gin-gonic
souin
An HTTP cache system, RFC compliant, compatible with @TykTechnologies, @traefik, @caddyserver, @go-chi, @bnkamalesh, @beego, @devfeel, @labstack, @gofiber, @go-goyave, @gin-gonic, @zalando, @zeromicro, @nginx and @apache
Stars: ✭ 269 (+1122.73%)
Mutual labels:  gin-gonic
httpsign
Signing HTTP Messages Middleware
Stars: ✭ 54 (+145.45%)
Mutual labels:  gin-gonic
go-gin-web-server
Deploy Go Gin on Render
Stars: ✭ 23 (+4.55%)
Mutual labels:  gin-gonic
editor.sh
Yet another live programming environment for collaborative code editing and running.
Stars: ✭ 29 (+31.82%)
Mutual labels:  gin-gonic

QuizApp

The given quizapp has been made in Go and React. This Readme is a walkthrough off all API endpoints as well as functionalities if any added.

Setup

To setup the given project follow the instructions separately for each -

Frontend : React

 Download the project
 In cmd navigate to the folder using command `cd react-app`
 Run `yarn install` to install all dependencies
 If no error is encountered then run `yarn start`
 
 OR
 
 If npm is already installed on your system then
 `cd react-app`
 `npm install`
 `npm start`

Backend: Go

 Download the project
 In cmd navigate to Go Folder using command `cd go`
 Install the following libraries for it to run - 
 - "github.com/gin-contrib/cors"
 - "github.com/gin-gonic/gin"  
 - "github.com/jinzhu/gorm"
 - "github.com/jinzhu/gorm/dialects/sqlite"
 - "golang.org/x/crypto/bcrypt"

To set your GOPATH add these lines into ~/.bashrc
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Install packages by run go get -u <name of package>

Database -

The project uses sqlite3 for RDBMS and has teh following tables

SNo Table Brief Description
1 Users List of Registered Users, alpha is admin
2 Quiz List of question pertaining to a quiz and the answers
3 Genres List of Genres
4 QGenres List of Quiz within each Genre
5 Score List of Scores of each user played

Alpha is the admin username Password is sad. This wasnt hashed while the rest were.

API Endpoints

The following are the Api endpoinst along with what they do

User table

  • GET :/people/ This sends the set of users
  • POST : /people This creates a new user
  • POST: /signin/ This is for login
  • GET : people/users/:username This sends a particular user info
  • DELETE : /people/:id This deletes a particular user

Quiz/Genre table

  • POST : /quiz/ This creates a new question
  • GET : /quiz/ This sends the set of questions
  • GET : /quiz/:qname This sends a particular quiz
  • GET : /quiz/:qname/:question This sends ta particular question
  • PUT : /quiz/:qname/:question This sends an update on a question
  • DELETE : /quiz/:genre/:qname/:question This deletes a qiven question
  • GET : /genres/ This sends the set of quiz
  • GET : /all-genres/ This sends all genres
  • GET : /genres/:genre This sends quiz of a particular genre
  • DELETE : /genres/:qname This deletes a particular quiz

Score table

  • POST : /score/ This adds a new score
  • PUT : /score/ Updates a pre-existing score
  • GET : /score/:username/:genre/:qname Gets a particular quiz score
  • GET : /score/ Gets all scores
  • GET : /score-genre/:genre Gets a particular genre score
  • GET : /score-users/:username Gets Quiz Scores based on username

Functionalities

Guest

  • Can Register
  • Can Login

User

  • Can Play Quiz
  • Can View Quiz Played By It
  • Can View Leaderboard of All Genres

Admin

  • Can Create Quiz
  • Can Delete Quiz
  • Can Update/Delete Questions is a Quiz
  • Can View all users and Delete Users
  • Questions can also have images
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].