gkama / gtk-survey

Survey development API mainly oriented around question types

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gtk-survey

gtk-survey is a survey generator that supports loads of functionalities with simplified CRUD operations and API access

Overview

gtk-survey is designed around QuestionType object which defines what a survey question is. The idea behind this is that these question types can be re-used and shared across the platform. The backend database will

Data Types

there are a number of data types within the gtk-survey ecosystem. They're all encapsulated within the Entity Framework Core context that performs all the major CRUD operations. The list below includes the names of the data types as well as their full definition

public class Client
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Slug { get; set; }
    public DateTime Created { get; set; }
    public DateTime LastUpdated { get; set; }
    public int? BillingId { get; set; }
    public Guid PublicKey { get; set; }
    public ICollection<Workspace> Workspaces { get; } = new List<Workspace>();
}
public class Workspace
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Slug { get; set; }
    public DateTime Created { get; set; }
    public DateTime LastUpdated { get; set; }
    public int? ClientId { get; set; }
    public Client Client { get; set; }
    public Guid PublicKey { get; set; }
    public ICollection<Survey> Surveys { get; } = new List<Survey>();
}
public class Survey
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime Created { get; set; }
    public string CreatedBy { get; set; }
    public DateTime LastUpdated { get; set; }
    public string LastUpdatedBy { get; set; }
    public int? WorkspaceId { get; set; }
    public Workspace Workspace { get; set; }
    public Guid PublicKey { get; set; }
    public ICollection<SurveyQuestion> SurveyQuestions { get; } = new List<SurveyQuestion>();
}
public class Question
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Text { get; set; }
    public DateTime Created { get; set; }
    public DateTime LastUpdated { get; set; }
    public int TypeId { get; set; }
    public QuestionType Type { get; set; }
    public Guid PublicKey { get; set; }
}
public class QuestionType
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Guid PublicKey { get; set; }
    public ICollection<QuestionTypeAnswer> Answers { get; } = new List<QuestionTypeAnswer>();
}
public class QuestionTypeAnswer
{
    public int Id { get; set; }
    public int TypeId { get; set; }
    public string Answer { get; set; }
    public Guid PublicKey { get; set; }
}
public class Response
{
    public int Id { get; set; }
    public int Count { get; set; }
    public int SurveyQuestionId { get; set; }
    public SurveyQuestion SurveyQuestion { get; set; }
    public int QuestionTypeAnswerId { get; set; }
    public QuestionTypeAnswer QuestionTypeAnswer { get; set; }
    public Guid PublicKey { get; set; }
}

About

Survey development API mainly oriented around question types


Languages

Language:C# 99.5%Language:Dockerfile 0.5%