Skip to content

This project is to study and show up the skills that i Learn/Possess and how i have implemented those in this project. this also shows my learning ability and adaptability with new technologies.

License

Notifications You must be signed in to change notification settings

anthroponymy/home

Repository files navigation

Project Title: Automated System for Interview Candidate Assessment and Salary Determination

Introduction:

The traditional method of interviewing candidates and determining their salary through face-to-face interviews has several drawbacks. It is time-consuming, prone to bias, and lacks objective data analysis. An automated system for candidate assessment and salary determination can help eliminate these problems.

Project Goals:

The goal of this project is to develop an automated system that can assess candidates' skills and qualifications and determine their salary based on objective data analysis. This system will provide a fair and unbiased evaluation of candidates and their skills, enabling organizations to make informed decisions on hiring and compensation.

Drawbacks of Traditional Face-to-Face Interview Process in Salary Determination:

The traditional face-to-face interview process has several drawbacks when it comes to determining a candidate's salary. Some of these drawbacks are:

Subjectivity:

The interviewers' biases can affect the candidate's evaluation and salary determination.

Time-consuming:

Conducting face-to-face interviews for every candidate is a time-consuming process.

Lack of data:

The evaluation is subjective, and there is no objective data to support the decision.

Inconsistency:

The evaluation criteria may not be consistent across different interviewers.

Advantages of the Automated System over Competitors:

The automated system has several advantages over its competitors, some of which are:

Objective data analysis: The system uses data to evaluate the candidate's skills and qualifications, eliminating subjectivity.

Time-saving:

The system can evaluate candidates quickly, reducing the time required for the evaluation process.

Consistency:

The system uses consistent evaluation criteria, ensuring that all candidates are evaluated fairly.

Elimination of Bias:

The system's objective evaluation eliminates any biases that may exist in the face-to-face interview process.

Accurate Salary Determination:

The system uses objective data analysis to determine a candidate's salary, ensuring that it is fair and consistent with industry standards.

Application Overview

We will be using JAVA for the API part, PostgreSQL for the data base and UI will be in latest Angular framework (Tailwind1 CSS as CSS framework). also here are some references that i will be using to build this application and the techniques that will be involved in developing this application.

  1. Spring Cloud Gateway2.
  2. Microservices with Spring Boot3.
  3. Kafka (in possible areas)3.
  4. UI Angular4
  5. Icons 5
  6. Provenance6

This application will be having only one end point based on spring colud gateway. and we will be having a multiple microservices based on the need. also the will have multiple apps for each users. here is the highlevel overview of the application that will make you understand under the hood.

API endpoint.

  1. Users/Roles
  2. Questions
  3. Answers
  4. Company Profile7
  5. Canditate Profile.
  6. Report

UI/APP

  1. Home/Welcome App.
  2. Admin App.
  3. Internal user App.
  4. Canditate Home App.
  5. Reports App.

Application Flow

Task Lists

  • Creating Git Report and adding README.

  • Linking Flow Diagram. 8

    • Creating the System Design.
      • overview of the system
      • control flow overview
        • App System Design
          • Home
          • Admin
          • Internal User
          • Canditate User
          • Report App
  • Get the pre-requsits done

    • Install PostgreSQL in the local machine and configure the DB.
    • Create the necessary tables.
    • Create the necessary View.
    • load the tables with sample data.
    • implement logging ability in the database.

Sample system flow (Admin app)

flowchart TD
    A[Admin] -->B(Access Request)
    B --> C{check for valid user}
    C -->|Type 1| D[fa:fa-user Internal User]
    C -->|Type 2| E[fa:fa-users Canditate]
    C -->|Type 3| F[fa:fa-file-excel Reports]

SQL Table Diagram

erDiagram

TEST_TYPE ||--o{ TEST_LOOKUP : TYP_ID
TEST_TYPE{
      SERIAL ID 
      TEXT DESCRIPTION
      INT POINTS
      TIMESTAMP UPDATED_DATE_TIME
    }
TEST_LOOKUP ||--o{ QUESTIONS : TEST_LOOKUP_ID
 TEST_LOOKUP{
        SERIAL ID 
        VARCHAR TITLE
        TEXT DESCRIPTION
        INT TYP_ID
        TIMESTAMP UPDATED_DATE_TIME
    }
QUESTIONS_LOOKUP ||--o{ QUESTIONS : ID_LOOKUP
QUESTIONS_LOOKUP{
        SERIAL id
        VARCHAR DESCRIPTIO
        INT Time
        INT POINTS
        TIMESTAMP UPDATED_DATE_TIME
    }
QUESTIONS ||--o{ ANSWERS : Q_ID
 QUESTIONS{
        SERIAL id
        TEXT QUESTION
        TEXT OPTIONS
        TEXT ANSWER
        INT ID_LOOKUP
        INT TEST_LOOKUP_ID
        TIMESTAMP UPDATED_DATE_TIME
    }


USR_WORK_PROFILE ||--o{ Users : USR_ID
USR_WORK_PROFILE{
     SERIAL id
    INT C_ID
    DATE DURATION_FROM
    DATE DURATION_TO
    INT CURRENT_CTC
    INT EXPECTED_CTC
    TIMESTAMP UPDATED_DATE_TIME
    INT USR_ID
}
COMPANY_PROFILE  ||--o{ USR_WORK_PROFILE : C_ID
COMPANY_PROFILE{
     SERIAL id
    TEXT COMPANY_NAME 
    BOOLEAN ISPRODUCT_BASED
    TIMESTAMP UPDATED_DATE_TIME
}

PERMISSIONS_LOOKUP ||--o{ USER_GROUP : PERM_ID
PERMISSIONS_LOOKUP{
    SERIAL id
    INT PERM_ID 
    VARCHAR DESCRIPTION 
    VARCHAR SHORT_DESC
    TIMESTAMP UPDATED_DATE_TIME
}
ACCESS_GROUP ||--o{ USER_GROUP : ACCESS_ID
ACCESS_GROUP{
    SERIAL id
    INT ACCESS_ID
    INT PARENT_ID
    VARCHAR DESCRIPTION
    VARCHAR ROUTES
    VARCHAR MAP_ROUTE
    TIMESTAMP UPDATED_DATE_TIME
}
USER_GROUP ||--|{ Users : GROUP_ID
USER_GROUP{
    SERIAL id
    INT GROUP_ID
    INT PARENT_ID
    INT ACCESS_ID
    INT PERM_ID
    VARCHAR DESCRIPTION
    TIMESTAMP UPDATED_DATE_TIME
}

USERSTATUS ||--o{ Users : USER_STATUS
USERSTATUS{
    SERIAL id
    VARCHAR DESCRIPTION 
    TIMESTAMP UPDATED_DATE_TIME
}
GET_NEXT_ID{
    INT NEXT_ID
    VARCHAR TBL_NAME
    VARCHAR HOLDING_PROCESS
}

Users ||--o{ ANSWERS : USR_ID
Users {
    SERIAL id
    VARCHAR FIRST_NAME
    VARCHAR LAST_NAME
    INT GROUP_ID
    VARCHAR EMAIL
    VARCHAR PHONE
    INT USER_STATUS
    TEXT USR_PASS
    TIMESTAMP UPDATED_DATE_TIME
}

ANSWERS {
    SERIAL id
    INT Q_ID
    INT USR_ID
    BOOLEAN ISTAKEN
    TEXT ANSR
    TIMESTAMP UPDATED_DATE_TIME
}

Class Diagram

classDiagram

    class Users{
        -Int id
        -String FIRST_NAME
        -String LAST_NAME
        -Int ROLE_ID
        -String EMAIL
        -String PHONE
        -Int USER_STATUS
        -String USR_PASS
        -DateTime UPDATED_DATE_TIME
    }
    class TEST_LOOKUP{
        -Int ID 
        -String TITLE
        -String DESCRIPTION
        -Int TYP_ID
        -DateTime UPDATED_DATE_TIME
    }
    class TEST_TYPE{
      -Int ID 
      -String DESCRIPTION
      -Int POINTS
      -DateTime UPDATED_DATE_TIME
    }
    class QUESTIONS_LOOKUP{
        -Int id
        -String DESCRIPTIO
        -Int Time
        -Int POINTS
        -DateTime UPDATED_DATE_TIME
    }

    class QUESTIONS{
        -Int id
        -String QUESTION
        -String OPTIONS
        -String ANSWER
        -Int ID_LOOKUP
        -Int TEST_LOOKUP_ID
        -DateTime UPDATED_DATE_TIME
    }
    class ANSWERS{
       -Int id
       -Int Q_ID
    -Int USR_ID
    -Boolean ISTAKEN
    -String ANSR
    -DateTime UPDATED_DATE_TIME
    }
class ROLES{
     
    -Int id
    -String DESCRIPTION
    -String SHORT_DESC
    -DateTime UPDATED_DATE_TIME
}

class USERSTATUS{
    -Int id
    -String DESCRIPTION 
    -DateTime UPDATED_DATE_TIME
}

class COMPANY_PROFILE{
     _Int id
    -String COMPANY_NAME 
    -Boolean ISPRODUCT_BASED
    -DateTime UPDATED_DATE_TIME
}

class USR_WORK_PROFILE{
     -Int id
    -Int C_ID
    -DateTime DURATION_FROM
    -DateTime DURATION_TO
    -Int CURRENT_CTC
    -Int EXPECTED_CTC
    -DateTime UPDATED_DATE_TIME
    -Int USR_ID
}

Users "1" --> "1..*"  ANSWERS :USR_ID
ROLES "1" --> "1..*"  Users :ROLE_ID
USERSTATUS "1" --> "1..*" Users  :USER_STATUS
QUESTIONS_LOOKUP "1" --> "1..*" QUESTIONS :ID_LOOKUP
QUESTIONS "1" --> "1..*" ANSWERS :Q_ID
TEST_LOOKUP "1" --> "1..*" QUESTIONS :TEST_LOOKUP_ID
TEST_TYPE "1" --> "1..*" TEST_LOOKUP :TYP_ID
COMPANY_PROFILE "1" --> "1..*"  USR_WORK_PROFILE :C_ID
USR_WORK_PROFILE "1" --> "1..*" Users :USR_ID

REFERENCS

  1. MARKDOWN SYNTAX
  2. Grammar index
  3. Flow diagram fonts
  4. for Writing mathematical expressions will be using mathjax
  5. Automate CI/CD workflows with GitHub Actions9.
  6. https://stackoverflow.com/questions/62990471/wikidata-query-to-get-country-synonyms-but-not-flag-symbols
  7. https://en.wikipedia.org/w/api.php
  8. https://w.wiki/XWh
  9. https://hotpot.ai/free-icons

you will see more and more changes in this application in comming months or may be years. i will be updating this application with the latest and greatest API and UI techenology available10

Footnotes

  1. Primary CSS Library is Tamilwind.

  2. Spring Cloud Gateway: Resilience, Security, and Observability w/ Thomas Vitale.

  3. If possible i will be using the Build Event-driven Microservices with Spring Boot & Kafka; 2

  4. I highely relay on this course by codewithmosh.

  5. I will be using the heroicons

  6. there is plan to implement https://slsa.dev/provenance/v0.1

  7. This might change or will be implemented in some other end point if it makes sense.

  8. I am using mermaidchart to represent all the flow diagrams in this project. also there is a USAGE LINK that shows how to use code this and use it in github. also will take a look at the https://kroki.io/

  9. I have got the reference video regarding GitHub Actions

  10. I am not sure how this application will end up and as far i am available for developement and growing myself up in the industry i will be working on thie project.

About

This project is to study and show up the skills that i Learn/Possess and how i have implemented those in this project. this also shows my learning ability and adaptability with new technologies.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published