tjdoe

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

README

Build Status Coverage Status codebeat badge Go Report Card License Version

tjdoe

tjdoe anonymizes given programs for programming courses and their scores for grades.

Install

🍺 Homebrew
$ brew tap tamada/brew
$ brew install tjdoe
Go lang
$ go get github.com/tamada/tjdoe
🛠 Build from source codes
$ git clone https://github.com/tamada/tjdoe.git
$ cd tjdoe
$ make

🍴 Usage

CLI
$ tjdoe --help
tjdoe [OPTIONS] <ROOT_DIR> <SCORES...>
OPTIONS
    -d, --dest <DIR>       specifies destination of anonymized programs.
                           if this option was not specified, output to 'dest' directory.
    -s, --score <SCORE>    specifies id mapping file. default is 'anonymized_score.csv'
    -S, --seed <SEED>      specifies seed for random values.
    -h, --help             print this message and exit.
    -v, --version          print version and exit.
ROOT_DIR
    the directory contains the programs.  The layout of the directory is arbitrary.
    The user arbitrary defines the names of sub-directories and files.
SCORES...
    show score file, the first row is the header, and the following rows
    represent each student and must be formatted as follows.
    The first column is the id, the second column shows the name by dividing
    the surname the given name with space, the third column is the final score,
    and the following columns represent the scores of assignments.
🐳 Docker
$ docker run --rm -v $PWD:/home/jjdoes tamada/tjdoe:1.0.0 rootdir scores.csv...

Above command should run on directory which has scores.csv and rootdir.

The meaning of the options above command are as follows.

  • --rm
    • remove container after running Docker.
  • -v $PWD:/home/tjdoe
    • share volumen $PWD in the host OS to /home/tjdoe in the container OS.
    • Note that $PWD must be the absolute path.

Others

Anonymity rules
  • Change directory names representing year (four-digit numbers) to 0000.
  • Change file names, and directory names contains id, name to anonymized id.
    • id and name are obtained from scores.csv.
  • Replace ids and names appearing in the content of the files, to anonymized id.
    • if there are students have the same surnames, every anonymized ids will be listed.
Example of score.csv
id,name,final score,a01,a02,a03,a04,a05,a06,a07,a08,a09,a10
123456,Tamada Haruaki,87,5,6,7,4,3,1,8,9,8,6
234567,Yamamoto Taro,53,4,3,3,2,3,,,,,4
345678,山本 次郎,95,10,10,10,10,10,10,,10,10,

About

Developers
tjdoe

tjdoe means 'to John/Jane Doe.'

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Mapping

type Mapping struct {
	// contains filtered or unexported fields
}

Mapping represents id mapping.

func (*Mapping) String

func (m *Mapping) String() string

type Student

type Student struct {
	ID                   string
	Name                 string
	AnonymizedID         string
	FinalScore           string
	AnonymizedFinalScore string
	Scores               map[string]int
}

Student shows a student score of grade.

func (*Student) AnonymizedString

func (s *Student) AnonymizedString() string

AnonymizedString returns anonymized information of student.

func (*Student) String

func (s *Student) String() string

type TJDoe

type TJDoe struct {
	// contains filtered or unexported fields
}

TJDoe shows core type for processing anonymity of programs.

func New

func New(seed int64) *TJDoe

New creates and returns an instance of TJDoe by initializing given seed.

func (*TJDoe) AnonymizeDirectory

func (tjdoe *TJDoe) AnonymizeDirectory(from, to string, students []*Student) error

AnonymizeDirectory copies files in from directory to destination directories with given mapping.

func (*TJDoe) BuildScores

func (tjdoe *TJDoe) BuildScores(scoreFiles []string) ([]*Student, error)

BuildScores creates array of Student from given score files.

func (*TJDoe) OutputAnonymizedScores

func (tjdoe *TJDoe) OutputAnonymizedScores(students []*Student, dest io.Writer) error

OutputAnonymizedScores generates score file to destination.

Directories

Path Synopsis
cmd
tjdoe command

Jump to

Keyboard shortcuts

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