Category: ROCKEN Documentation

  • Publications Benefits Applicants

    Task:


    RT-3088

    select candidates.id                                               as "ApplicantId",
           concat_ws(' ', candidates.first_name, candidates.last_name) as "ApplicantName",
           vacancies.name                                              as "PublicationName",
           vacancies.id                                                as "PublicationId",
           string_agg(benefits.name, ', ')                             as "BenefitName",
           count(benefits.id)                                          as "BenefitCount"
    from candidates
             join applications on candidates.id = applications.candidates_id
             join vacancies on applications.vacancies_id = vacancies.id
             left join benefit_vacancy on vacancies.id = benefit_vacancy.vacancy_id
             left join benefits on benefit_vacancy.benefit_id = benefits.id
    where candidates.date_add >= '2023-09-01'
      and candidates.date_add < '2024-01-01'
    group by candidates.id, vacancies.id
    order by candidates.id;
    
  • Report. Rocked Candidates

    Task:


    RT-3121

    select
        count(distinct candidates_vacancy_requests.id) as "ProcessTotal",
        count(distinct candidates.id) as "CandidateTotal",
           count(distinct candidates.id)
           filter (
               where (
                         candidates.residence_permits_id = 9
                             or candidates.residence_permits_id is null
                         )
               and candidates.gender = 'male'
               )
                                         as "SwissMale",
           count(distinct candidates.id)
           filter (
               where (
                         candidates.residence_permits_id = 9
                             or candidates.residence_permits_id is null
                         )
               and candidates.gender = 'female'
               )
                                         as "SwissFemale",
           count(distinct candidates.id)
           filter (
               where candidates.residence_permits_id != 9
               and candidates.gender = 'male'
               )
                                         as "ForeignMale",
           count(distinct candidates.id)
           filter (
               where candidates.residence_permits_id != 9
               and candidates.gender = 'female'
               )
                                         as "ForeignFemale"
    from candidates_vacancy_requests
             join candidates on candidates.id = candidates_vacancy_requests.candidates_id
    where date(candidates_vacancy_requests.date_update_status) >= '2023-01-01'
      and date(candidates_vacancy_requests.date_update_status) < '2024-01-01'
      and candidates_vacancy_requests.status = 13;
  • Rocken Sprint 52 – Planning & Goals

    (синяя звезда) Sprint team members

    Name

    Role

    Main Goal

    Planned Capacity

    Note

    sophiabilyk

    Project Manager

    10D

    Julia

    Product Manager

    10D

    Sviridenko Dima (Unlicensed)

    TeamLead, BE/FE Dev

    New Architecture

    10D

    Dasha Rozhniatovska

    BE Dev

    New Architecture

    10D

    alex.neroznak (Unlicensed)

    BE Dev

    New Architecture

    10D

    Anton Liakh

    Bughunter/BE Dev

    Support, New Architecture

    10D

    + Support

    Valya Stelmashenko (Unlicensed)

    FE Dev

    New Architecture

    10D

    Anna Aksonenko

    FE/BE dev

    SEO tasks

    Ivan Hodoniuk

    QA

    New Architecture, Support QA

    10D

    Viktoriia Malysh

    QA

    New Architecture FE, Support QA

    10D

    Mikhail

    Designer

    CRM, BI board

    10D

    Roman

    DevOps

    Replication DB, DevOps tasks

    (синяя звезда) Sprint Goals

    Details

    Start date

    End date

    Sprint theme

    New Architecture, Support cases

    New Architecture:

    Back-end:

    • Activity Module: Profile page, Vacancy, Publication

    • Companies adjustments: Relationship to company, Staff

    • Talent: Contact information, Settings

    Front-end:

    • BI Reports structure: Processes (Interviews, Top Processes per Vacncy), Applications

    • Create process form

    • Candidate Profile create/edit forms connect to API

    • Vacancy preview

    General:

    • Setup / connect API of parsing resume service

    Design:

    • BI board: Create process of changing + approving goals

    • CRM: Create profile BM & Consultant, Create designs Applicants and Profiles

    • RT login page

    Support:

    • Allow management consultants to delete RT profiles in their Units

  • Rocken Sprint 51 – Planning & Goals

    (синяя звезда) Sprint team members

    Name

    Role

    Main Goal

    Planned Capacity

    Note

    sophiabilyk

    Project Manager

    10D

    Julia

    Product Manager

    10D

    Sviridenko Dima (Unlicensed)

    TeamLead, BE/FE Dev

    New Architecture

    Vacation

    Dasha Rozhniatovska

    BE Dev

    New Architecture

    9D

    alex.neroznak (Unlicensed)

    Bughunter/BE Dev

    Support, New Architecture

    10D

    + Support

    Anton Liakh

    BE Dev

    New Architecture

    10D

    Valya Stelmashenko (Unlicensed)

    FE Dev

    New Architecture

    10D

    Anna Aksonenko

    FE/BE dev

    SEO tasks

    Ivan Hodoniuk

    QA

    New Architecture, Support QA

    10D

    Viktoriia Malysh

    QA

    New Architecture FE, Support QA

    10D

    Mikhail

    Designer

    CRM, BI board

    5D

    Roman

    DevOps

    Replication DB, DevOps tasks

    (синяя звезда) Sprint Goals

    Details

    Start date

    End date

    Sprint theme

    New Architecture, Support cases

    New Architecture:

    Back-end:

    • Activity Module: Profile page, OpenEmail

    • Companies adjustments: KT levels, SPOC, Client level, Company stuff, Relationship to company

    Front-end:

    • Vacancy: Header, Collapsed form, Update forms

    • Talent Contact, Security forms

    • BI Reports structure: Processes

    • Fix Hobby, skills & Interview form

    • Create process form

    General:

    • Setup / connect API of parsing resume service

    Design:

    • BI board: Create process of changing + approving goals

    • CRM: Create profile BM & Consultant, Create designs Applicants and Profiles

    • RT login page

    Support:

    • Create a list of candidates with "No-reply" processes

    • Deactivate selected publications VENUS

    • Deactivate selected publications ERDE

  • Report. Process performance average status count

    Task:


    RT-2502

    Criteria: Collect Average numbers for the candidates which were Active, had processes but didn’t reach status ROCKED in the last 12 months

    Query:

    select
        count("candidateId") as "numCandidate",
        avg("numProcess") AS "averageProcessCount",
        avg("numCandidateAccepted") AS "averageCandidateAcceptedCount",
        avg("numCandidateRejected") AS "averageCandidateRejectedCount",
        avg("numCandidateNoReply") AS "averageCandidateNoReplyCount",
        avg("numShared") AS "averageSharedCount",
        avg("numCompanyAccepted") AS "averageCompanyAcceptedCount",
        avg("numCompanyRejected") AS "averageCompanyRejectedCount",
        avg("numCompanyNoReply") AS "averageCompanyNoReplyCount",
        avg("numInterview") AS "averageInterviewCount",
        avg("numTrialDay") AS "averageTrialDayCount",
        avg("numOffered") AS "averageOfferedCount",
        avg("numRocked") AS "averageRockedCount"
    from (
             select distinct candidates.id as "candidateId",
                    count(distinct process.id) as "numProcess",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '3')              as "numCandidateAccepted",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '4')              as "numCandidateRejected",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '14')             as "numCandidateNoReply",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '6')              as "numShared",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '10')             as "numCompanyAccepted",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '11')             as "numCompanyRejected",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '15')             as "numCompanyNoReply",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value in ('7', '8', '9')) as "numInterview",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '20')             as "numTrialDay",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '12')             as "numOffered",
                    count(distinct process_history.row_id)
                    filter (where process_history.field_name = 'status'
                        and process_history.new_value = '13')             as "numRocked"
             from candidates
                      join candidates_vacancy_requests as process on process.candidates_id = candidates.id
                      join arhistory as process_history on process_history.row_id = process.id and
                                                           process_history.table_name = 'candidates_vacancy_requests'
                      join arhistory as candidate_history on candidate_history.row_id = candidates.id and
                                                             candidate_history.table_name = 'candidates'
             where candidate_history.field_name = 'status_id'
               and candidate_history.new_value = '5'
               and not exists(select candidates_vacancy_requests.id
                              from candidates_vacancy_requests
                              where candidates_vacancy_requests.candidates_id = candidates.id
                                and candidates_vacancy_requests.status = 13
                                and date(candidates_vacancy_requests.date_update_status) >= '2022-08-22'
                                and date(candidates_vacancy_requests.date_update_status) <= '2023-08-22')
               and date(to_timestamp(process_history.created_at)) >= '2022-08-22'
               and date(to_timestamp(process_history.created_at)) <= '2023-08-22'
             group by candidates.id
         ) temp;
    

  • Report. ROCKED candidates performance

    Task:


    RT-2502

    Criteria: Collect the data about processes of ROCKED candidates for the last 12 months

    Query:

    select
        candidates.id as "candidateId",
        concat_ws(' ', candidates.first_name, candidates.last_name) as "candidateName",
           count(distinct candidates_vacancy_requests.id)   as "numTotal",
           count(distinct candidates_vacancy_requests.id)
           filter (where candidates_vacancy_requests.date_add <=
                         rocked_process.date_update_status) as "numProcessesBeforeBecomingRocked",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '3')               as "numCandidateAccepted",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '4')               as "numCandidateRejected",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '14')              as "numCandidateNoReply",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '6')               as "numShared",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '10')              as "numCompanyAccepted",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '11')              as "numCompanyRejected",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '15')              as "numCompanyNoReply",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value in ('7', '8', '9'))  as "numInterview",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '20')              as "numTrialDay",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '12')              as "numOffered",
           count(distinct arhistory.row_id)
           filter (where arhistory.field_name = 'status'
               and arhistory.new_value = '13')              as "numRocked"
    from candidates
             join candidates_vacancy_requests on candidates.id = candidates_vacancy_requests.candidates_id
             join candidates_vacancy_requests as rocked_process on candidates.id = rocked_process.candidates_id
             join arhistory on arhistory.row_id = candidates_vacancy_requests.id and
                               arhistory.table_name = 'candidates_vacancy_requests'
    where rocked_process.status = 13
      and date(rocked_process.date_update_status) >= '2022-08-22'
      and date(rocked_process.date_update_status) <= '2023-08-22'
    group by candidates.id

  • Connect to internal VPN – instructions

    Windows

    1. Download openvpn client from the following link https://openvpn.net/community-downloads/

    2. Install downloaded file

    3. After installing in systray, you will see openvpn icon

    4. Right click on Openvpn icon in systray and select Import -> Import file.

    5. The file vpn.cheitgroup.com.ovpn should be somewhere in your mail box. Try searching for "vpn.cheitgroup.com.ovpn" or find an email with the subject "VPN config for user.name". If the letter is more than three years old, then it is quite possible that you will need to reissue a new config.

    6. Select .ovpn file ( on screenshot vpn.cheitgroup.com.ovpn), after confirmation that "File imported successfully" …

    7. Right click on Openvpn icon in systray and select Connect, enter any login (for login you can use your email it can be helpful in diagnostic if you faced any connection problems) and any password (autentification based on keys in your .ovpn file) then click "OK".

    8. If everything is correct you will see notification that "vpn.cheitgroup.com.ovpn is now connected"

    Important note:
    The .ovpn file (vpn.cheitgroup.com.ovpn) contains sensitive information. Each colleague has its own unique file. Please refrain from sending (selling/changing/gifting 🙂 ) your .ovpn file to any other colleagues or individuals through messaging apps, email, or any other means.

    For Linux (Ubuntu).

    1. Open a terminal and enter the following command:

      sudo apt update && sudo apt install openvpn -y
    2. After the package is installed, you can easily connect to the VPN by entering the following command in the terminal:

      sudo openvpn --config /home/username/Downloads/vpn.cheitgroup.com.ovpn

    Please note that you should provide (replace /home/username/Downloads/vpn.cheitgroup.com.ovpn ) full path to your .ovpn file.

    3. Provide any login (you can use your email; it can be helpful for diagnostics if you encounter connection problems) and any password (authentication is based on keys in your .ovpn file).

    For MacOS

    Via CLI

    1. Open a terminal and enter the following command:

    brew install openvpn
    1. After the package is installed, you can easily connect to the VPN by entering the following command in the terminal:

    sudo openvpn --config /path/to/vpn.cheitgroup.com.ovpn
    1. Enter your GitLab username and password

    Via GUI

    1. Install Tunnelblick: You can download and install Tunnelblick from their official website: Tunnelblick.

    2. Add Configuration to Tunnelblick: Open Tunnelblick and drag your configuration files (with the .ovpn extension) into the Tunnelblick window, or select "Import configurations" from the menu. Tunnelblick will add the configurations and display them in the main application window.

      Screenshot 2024-04-02 at 13.17.25.png

    3. Connect to VPN: Click on the configuration you want to use and press the "Connect" button. You may need to enter your authentication details if required.

      Screenshot 2024-04-02 at 13.17.58.png

    4. Monitor the Connection: After connecting, you can monitor the connection status directly within the Tunnelblick window. It will display information about the connection, such as the IP address, traffic, etc.

    Screenshot 2024-04-02 at 13.30.34.png

  • Rocken Sprint 44 – Planning & Goals

    (синяя звезда) Sprint planning checklist

    Preparation

    Meeting

    Follow up

    • Sprint planning call with team
    • Close & clean previous sprint

    • Discuss planned tasks
    • Add estimates (poker estimating)

    • Make sure all estimations are added to the tasks
    • Demo after each sprint

    (синяя звезда) Sprint team members

    Name

    Role

    Main Goal

    Planned Capacity

    Note

    sophiabilyk

    Project Manager

    5D

    Julia

    Product Manager

    10D

    Sviridenko Dima (Unlicensed)

    TeamLead, BE/FE Dev

    New Architecture

    10D

    Dasha Rozhniatovska

    Bughunter/BE Dev

    Support, New Architecture

    10D

    alex.neroznak (Unlicensed)

    BE Dev

    New Architecture

    5D

    Vacation

    Anton Liakh

    BE Dev

    New Architecture

    10D

    Valya Stelmashenko (Unlicensed)

    FE Dev

    New Architecture

    10D

    Zhuravlev Artem (Unlicensed)

    FE Dev

    New Architecture

    10D

    Anna Aksonenko

    FE/BE dev

    SEO tasks

    Ivan Hodoniuk

    QA

    New Architecture, Support QA

    10D

    Viktoriia Malysh

    QA

    New Architecture FE, Support QA

    10D

    Ihor

    FE Dev

    Corporate site

    Mikhail

    Designer

    Vacancies, Companies CRM

    10D

    Roman

    DevOps

    DevOps tasks

    Freelancer

    Dev

    3D animation

    (синяя звезда) Sprint Goals

    Details

    Start date

    End date

    Sprint theme

    New Architecture, Support cases

    New Architecture:

    Back-end:

    • Talent refactoring

    • PDF

    • Processes Actions

    • BI board: Goals setting

    Front-end:

    • Talent refactoring

    • CRM Company structure

    • Processes elements

    • Vacancy page header

    • Skills & Categories inputs

    • BI board inputs

    DevOps:

    • Migrate domains to new URL

    • Elastic search server

    Support:

    • Allow candidates to select the category in Prof.Erstellen application

    • Add the rejection reason into the note history

    • Prevent cheating in Vacancy reservation

    • Profile shared links are not available for the companies without the VPN

    • Error happens after filtering by "Application date" on the Applicants page

    • Update the default text in selector

    • Add one more option to the new selector on RJ

    • Check existance of RT profiles without CRM profiles

    • Remove one selection for Profil erstellen: Rejection

  • Tasks status – Sprint 41

    Dev

    Task

    Estimated / Remaining time

    Spent time

    Comment

    Result

    alex.neroznak (Unlicensed)

    Bug hunter


    RT-1856

    CODE REVIEW


    RT-1848

    CODE REVIEW


    RT-2068

    CODE REVIEW


    RT-2069


    RT-2070

    Ongoing task


    RT-1903

    2D


    RT-2089

    2h


    RT-2101

    2h


    RT-2120

    2h


    RT-2134

    1h


    RT-2066

    1D


    RT-1998

    2h


    RT-1931

    1W


    RT-1955

    4h


    RT-1822

    4h


    RT-2136

    1D


    RT-2138

    Not planned

    Code Reviews

    Total (planned): 11D

    ±Spent:

    Dasha Rozhniatovska


    RT-1839

    1D 4h


    RT-1837


    RT-1840


    RT-1798

    3D


    RT-2131

    1D


    RT-1759

    4D


    RT-2139

    4h


    RT-2105

    30m


    RT-2106

    1D


    RT-2123

    1h


    RT-2140

    30m

    Code Reviews

    Total (planned): 10.5D

    ±Spent:

    Anton Liakh


    RT-2146

    1W


    RT-2147

    1W

    Code Reviews

    Total (planned): 10D

    ±Spent:

    Sviridenko Dima (Unlicensed)


    RT-1927

    5D


    RT-2071

    Ongoing task


    RT-1804

    2.5D


    RT-2144

    2h


    RT-1908

    6h


    RT-1976

    2h


    RT-1977

    3h


    RT-1913

    4h


    RT-2074

    3h


    RT-2088

    3h


    RT-2091

    2h


    RT-1959


    RT-2016


    RT-2017


    RT-1969


    RT-1956


    RT-1912


    RT-1916


    RT-1917


    RT-1991


    RT-1992


    RT-2007


    RT-2085


    RT-2104

    Code Reviews

    2D

    Total (planned): 12.5D

    ±Spent:

    Valya Stelmashenko (Unlicensed)


    RT-1899

    CODE REVIEW


    RT-2021


    RT-2023

    CODE REVIEW


    RT-2024


    RT-1976

    CODE REVIEW


    RT-1894

    CODE REVIEW


    RT-2055

    1W


    RT-2098

    1D

    Code Reviews

    Total (planned): 6D

    ±Spent:

    Zhuravlev Artem (Unlicensed)


    RT-1896

    CODE REVIEW


    RT-1898

    CODE REVIEW


    RT-1926

    CODE REVIEW


    RT-1895

    CODE REVIEW


    RT-1900

    CODE REVIEW


    RT-1897

    CODE REVIEW


    RT-1907

    CODE REVIEW


    RT-2022

    CODE REVIEW


    RT-2072

    CODE REVIEW


    RT-2145

    4D


    RT-2126

    2h


    RT-2125

    2h


    RT-2124

    4h


    RT-2005

    1h


    RT-2004

    3h


    RT-2002

    1h


    RT-1960

    2h

    Code Reviews

    Total (planned): 8D

    ±Spent:

    (синяя звезда) Pay attention:

    Task

    Responsible

    Comment


    RT-2152

    Anna

    Start with publications


    RT-2155


    RT-1863

    Ihor / Anna / QA

    Start & complete QA in Sprint 40

    Bugs fixing


    RT-1931

    Sasha / Julia

    Ask Julia about business goal & details

  • Support tasks status – Sprint 41

    Task

    Spent time

    Comment

    Status


    RT-1822

    From Sprint 40


    RT-1955

    From Sprint 40


    RT-1998

    From Sprint 40


    RT-2066

    From Sprint 40


    RT-2131

    From Sprint 40

    IN PROGRESS


    RT-1882

    From Sprint 40

    QA


    RT-2103

    From Sprint 40

    QA


    RT-2132

    From Sprint 40

    QA


    RT-1931


    RT-2136

    ±Spent: