UCL-ARC / shortlister

0 stars 0 forks source link

Define the data model #1

Closed tamuri closed 1 month ago

tamuri commented 1 month ago

Definition of Done / Acceptance Criteria

A model that satisfactorily captures, holds and processes the information required for shortlisting a applicants for a job role.

Comments

The following classes serve as a start:

  1. JobRole: title, description, criteria (list of Criterion)
  2. Applicant: name, path_to_cv, scores (dict of Criterion), notes
  3. Criterion: name, description, scores
tamuri commented 1 month ago

I suggest writing the JobRole & Criteria information in TOML format. There is a package for working with TOML files in standard library of Python 3.11+.

For example:

# job_role.toml
title = "Research Software Engineer"
description = "Collaborate with research colleagues from across UCL to construct, improve, and maintain codes used for modelling, analysis, synthesis, simulation and more."
criterion = [
  { name="PhD", description="PhD or equivalent experience", scores=[0,1,2,3] }, 
  { name="Best practice", description="Knowledge of testing, version control, documentation", scores=[0,1,2,3] }, 
  { name="Team", description="Has worked as member of a team", scores=[0,1,2,3] }
]
tamuri commented 1 month ago

Class diagram:

---
title: Shortlisting model
---
classDiagram
    class Shortlist {
        +Role role
        +List[Applicant] applicants
    }
    class Role {
        +String job_title
        +String job_id
        +List[Criterion] criteria
    }
    class Criterion {
        +String name
        +String description
        +List[String] scoring
    }
    class Applicant {
        +String name
        +String cv_path
        Dict[Criteria, String] scores
    }
    Shortlist *-- Role
    Role *-- Criterion
    Shortlist *-- Applicant