Version: v0.0.0-...-f2f702e Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2019 License: GPL-3.0 Imports: 6 Imported by: 0




This section is empty.


This section is empty.


This section is empty.


type Activity

type Activity int

Activity enum for keeping track of user activity

const (
	/////// System logs ///////
	NewUser             Activity = 0 // A new user is created
	ChangeEmail         Activity = 1 // User changed email
	ChangePassword      Activity = 2 // User changed password (DO NOT SHOW OLD/NEW PASSWORD IN LOG)
	ChangePasswordEmail Activity = 3 // User changed password through email

	/////// Course logs ///////
	// Submission
	CreateSubmission Activity = 4 // User submission is created
	UpdateSubmission Activity = 5 // User submission is updated
	DeleteSubmission Activity = 6 // User submission is deleted
	// Review
	FinishedOnePeerReview Activity = 7 // User is done with one peer review (that this user did)
	UpdateOnePeerReview   Activity = 8 // User changed one peer review
	// Course
	JoinedCourse Activity = 9  // User joined course
	LeftCourse   Activity = 10 // USer left course
	// Group
	CreateGroup     Activity = 11 // User created group
	EditGroupName   Activity = 12 // User edited group name
	DeleteGroup     Activity = 13 // User deleted group
	JoinGroup       Activity = 14 // User joined group
	LeftGroup       Activity = 15 // User left group
	KickedFromGroup Activity = 16 // User kicked from group

	/////// Admin logs ///////
	// Assignment
	AdminCreateAssignment Activity = 100 // Admin assignment is created
	AdminDeleteAssignment Activity = 101 // Admin assignment is deleted
	AdminUpdateAssignment Activity = 102 // Admin assignment is updated
	// Forms
	AdminCreateSubmissionForm Activity = 103 // Admin submission form is created
	AdminUpdateSubmissionForm Activity = 104 // Admin submission form is updated
	AdminDeleteSubmissionForm Activity = 105 // Admin submission form is deleted
	AdminCreateReviewForm     Activity = 106 // Admin review form is created
	AdminUpdateReviewForm     Activity = 107 // Admin review form is updated
	AdminDeleteReviewForm     Activity = 108 // Admin review form is deleted
	// Course
	AdminCreatedCourse Activity = 109 // Admin course is created
	AdminUpdateCourse  Activity = 110 // Admin course is updated
	AdminDeleteCourse  Activity = 111 // Admin course is deleted
	// FAQ
	AdminCreateFAQ Activity = 112 // Admin FAQ is created
	AdminUpdateFAQ Activity = 113 // Admin FAQ is updated
	// Manage students
	AdminEmailCourseStudents     Activity = 114 // Admin emailed all students in course through the system
	AdminRemoveUserFromCourse    Activity = 115 // Admin removed one user from course
	AdminChangeStudentPassword   Activity = 116 // Admin changed one users password
	AdminCreateSubmissionForUser Activity = 117 // Admin created submission for user
	AdminUpdateSubmissionForUser Activity = 118 // Admin updated submission for user
	AdminDeleteSubmissionForUser Activity = 119 // Admin deleted submission for user
	AdminAddUserToGroup          Activity = 120 // Admin added user to group
	AdminRemoveUserFromGroup     Activity = 121 // Admin removed user from group
	AdminEditGroupName           Activity = 122 // Admin edited group name
	AdminDeleteGroup             Activity = 123 // Admin deleted group
	AdminCreateGroup             Activity = 124 // Admin created group

Enum for logs user is 0-16 and admin is 100 - 124

type Answer

type Answer struct {
	ID      int
	Type    string
	Value   string
	Comment sql.NullString

Answer struct used for storing answers from users in forms

type Assignment

type Assignment struct {
	ID             int           `json:"id" db:"id"`
	Name           string        `json:"name" db:"name"`
	Description    string        `json:"description" db:"description"`
	Created        time.Time     `json:"created" db:"created"`
	Publish        time.Time     `json:"publish" db:"publish"`
	Deadline       time.Time     `json:"deadline" db:"deadline"`
	CourseID       int           `json:"course_id" db:"course_id"`
	SubmissionID   sql.NullInt64 `json:"-" db:"submission_id"`
	ReviewID       sql.NullInt64 `json:"-" db:"review_id"`
	Submission     Submission    `json:"submission"`
	Review         Review        `json:"review"`
	ReviewEnabled  bool          `json:"review_enabled"`
	ReviewDeadline time.Time     `json:"review_deadline"`
	Reviewers      sql.NullInt64 `json:"reviewers"`
	ValidationID   sql.NullInt64 `json:"validation_id"`
	GroupDelivery  bool          `json:"group_delivery"`

Assignment hold the data for a single assignment

type Course

type Course struct {
	ID          int          `json:"id"`
	Hash        string       `json:"hash"`
	Code        string       `json:"code"`
	Name        string       `json:"name"`
	Description string       `json:"description"`
	Teacher     int          `json:"teacher"`
	Year        string       `json:"year"`
	Semester    string       `json:"semester"`
	Assignments []Assignment `json:"assignments"`

Course holds the data for courses

type Faq

type Faq struct {
	ID        int       `json:"id"`
	Timestamp time.Time `json:"timestamp"`
	Questions string    `json:"questions"`

Faq Struct for keeping the frequently asked questions under /admin/faq

type Field

type Field struct {
	ID          int      `json:"id"`
	FormID      int      `json:"form_id"`
	Type        string   `json:"type"`
	Name        string   `json:"name"`
	Description string   `json:"description"`
	Label       string   `json:"label"`
	HasComment  bool     `json:"hasComment"`
	Order       int      `json:"order"`
	Weight      int      `json:"weight,omitempty"`
	Choices     []string `json:"choices,omitempty"`
	Required    bool     `json:"required"`

Field struct

type Form

type Form struct {
	ID      int       `json:"id" db:"id"`
	Prefix  string    `json:"prefix" db:"prefix"`
	Name    string    `json:"name" db:"name"`
	Created time.Time `json:"created" db:"created"`
	Fields  []Field   `json:"fields"`

Form struct

type FormRepositoryOld

type FormRepositoryOld struct{}

FormRepositoryOld struct

func (*FormRepositoryOld) Get

func (repo *FormRepositoryOld) Get(id int) (Form, error)

Get a single form based on the Primary Key, 'id'

func (*FormRepositoryOld) GetReviewFormFromAssignmentID

func (repo *FormRepositoryOld) GetReviewFormFromAssignmentID(assignmentID int) (Form, error)

GetReviewFormFromAssignmentID get review-form from the assignment id key

func (*FormRepositoryOld) GetSubmissionFormFromAssignmentID

func (repo *FormRepositoryOld) GetSubmissionFormFromAssignmentID(assignmentID int) (Form, error)

GetSubmissionFormFromAssignmentID get form from the assignment id key

func (*FormRepositoryOld) Insert

func (repo *FormRepositoryOld) Insert(form Form) (int, error)

Insert form to database

type FullReview

type FullReview struct {
	Reviewer     int // User that is doing the review
	Target       int // User that is getting the review
	ReviewID     int
	AssignmentID int
	Answers      []ReviewAnswer

FullReview holds specific data about an review for displaying it

type Group

type Group struct {
	ID           int    `json:"id"`
	AssignmentID int    `json:"assignment_id"`
	Name         string `json:"name"`
	Users        []User `json:"users"`
	Creator      int    `json:"creator"`

Group struct

type Logs

type Logs struct {
	ID             int            `json:"id"`               // [NOT NULL][all]
	UserID         int            `json:"user_id"`          // [NOT NULL][all]
	UserName       sql.NullString `json:"user_name"`        // [NULLABLE]
	UserRole       sql.NullInt64  `json:"user_role"`        // [NULLABLE]
	Timestamp      time.Time      `json:"timestamp"`        // [NOT NULL][all]
	Activity       Activity       `json:"activity"`         // [NOT NULL][all]
	AssignmentID   sql.NullInt64  `json:"assignment_id"`    // [NULLABLE]
	CourseID       sql.NullInt64  `json:"course_id"`        // [NULLABLE]
	SubmissionID   sql.NullInt64  `json:"submission_id"`    // [NULLABLE]
	ReviewID       sql.NullInt64  `json:"review_id"`        // [NULLABLE]
	GroupID        sql.NullInt64  `json:"group_id"`         // [NULLABLE]
	OldValue       sql.NullString `json:"old_value"`        // [NULLABLE]
	NewValue       sql.NullString `json:"new_value"`        // [NULLABLE]
	AffectedUserID sql.NullInt64  `json:"affected_user_id"` // [NULLABLE]

Logs struct for keeping logs data

type PeerReview

type PeerReview struct {
	ID           int
	ReviewerID   int    // User that is doing the review
	TargetID     int    // User that is getting the review
	ReviewerName string // User that is doing the review
	TargetName   string // User that is getting the review
	AssignmentID int

PeerReview struct

type ProcessedAssignmentReport

type ProcessedAssignmentReport struct {
	UserReports []ProcessedUserReport `json:"user_reports"`

ProcessedAssignmentReport struct

func (*ProcessedAssignmentReport) ExportCSV

func (par *ProcessedAssignmentReport) ExportCSV() (string, error)

ExportCSV func

type ProcessedReviewItem

type ProcessedReviewItem struct {
	Mean   float64 `json:"mean"`
	StdDev float64 `json:"std_dev"`

ProcessedReviewItem struct

type ProcessedUserReport

type ProcessedUserReport struct {
	Name         string                `json:"name"`
	Email        string                `json:"email"`
	ReviewsDone  int                   `json:"reviews_done"`
	ReviewItems  []ProcessedReviewItem `json:"review_items"`
	ReviewMark   float64               `json:"review_mark"`
	ReviewStdDev float64               `json:"review_std_dev"`

ProcessedUserReport struct

type RawUserReport

type RawUserReport struct {
	Name         string      `json:"name"`
	Email        string      `json:"email"`
	ReviewsDone  int         `json:"reviews_done"`
	ReviewScores [][]float64 `json:"review_scores"`

RawUserReport struct

func (*RawUserReport) Process

func (raw *RawUserReport) Process() (*ProcessedUserReport, error)

Process raw user report to processed user report

type Review

type Review struct {
	ID     int  `json:"id" db:"id"`
	FormID int  `json:"-" db:"form_id"`
	Form   Form `json:"form"`

Review struct

type ReviewAnswer

type ReviewAnswer struct {
	ID           int            `json:"id"`
	UserReviewer int            `json:"user_reviewer"`
	UserTarget   int            `json:"user_target"`
	AssignmentID int            `json:"assignment_id"`
	ReviewID     int            `json:"review_id"`
	Type         string         `json:"type"`
	Name         string         `json:"name"`
	Label        string         `json:"label"`
	Description  string         `json:"description"`
	Answer       string         `json:"answer"`
	HasComment   bool           `json:"has_comment"`
	Comment      sql.NullString `json:"comment"`
	Choices      []string       `json:"choices"`
	Submitted    time.Time      `json:"submitted"`
	Weight       int            `json:"weight"`
	Required     bool           `json:"required"`

ReviewAnswer holds the data for a single review answer

type Submission

type Submission struct {
	ID     int  `json:"id" db:"id"`
	FormID int  `json:"-" db:"form_id"`
	Form   Form `json:"form"`

Submission struct

type SubmissionAnswer

type SubmissionAnswer struct {
	ID           int            `json:"id"`
	UserID       int            `json:"user_id"`
	AssignmentID int            `json:"assignment_id"`
	SubmissionID int            `json:"submission_id"`
	Type         string         `json:"type"`
	Name         string         `json:"name"`
	Label        string         `json:"label"`
	Description  string         `json:"description"`
	Answer       string         `json:"answer"`
	HasComment   bool           `json:"has_comment"`
	Comment      sql.NullString `json:"comment"`
	Choices      []string       `json:"choices"`
	Submitted    time.Time      `json:"submitted"`
	Weight       int            `json:"weight"`
	Required     bool           `json:"required"`

SubmissionAnswer struct

type User

type User struct {
	ID            int            `json:"id"`
	Name          string         `json:"name"`
	EmailStudent  string         `json:"emailstudent"`
	EmailPrivate  sql.NullString `json:"emailprivate,omitempty"`
	Teacher       bool           `json:"teacher"`
	Authenticated bool           `json:"authenticated"`

User struct to hold session data

type UserRegistrationPending

type UserRegistrationPending struct {
	ID           int            `json:"id"`
	Name         sql.NullString `json:"name"`
	Email        string         `json:"email"`
	Password     sql.NullString `json:"password"`
	ValidationID int            `json:"validation_id"`

UserRegistrationPending struct for keeping data for the table user_pending

type UserSubmission

type UserSubmission struct {
	UserID       int
	AssignmentID int
	SubmissionID int64
	Answers      []Answer
	Submitted    time.Time

UserSubmission is an struct for user submissions

type ValidationEmail

type ValidationEmail struct {
	ID        int           `json:"id"`
	Hash      string        `json:"hash"`
	UserID    sql.NullInt64 `json:"userid"`
	Valid     bool          `json:"valid"`
	TimeStamp time.Time     `json:"timestamp"`

ValidationEmail struct for keeping the data for the validation table for confirming email address, forgotten password and adding secondary email

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL