Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linkage Process and Added to Readme File #43

Open
wants to merge 21 commits into
base: master
Choose a base branch
from

Conversation

rodriguez03
Copy link
Collaborator

The following PR contains the linkage process to connect the Google Sheets with Cellveyor. In specific, this program contains new commands in order to read the data from the google sheet file. Although it is not entirely done, it is important to make progress by having the tool produce an output of all the data inside all worksheets. To run the this program I ran the following output.

poetry run cellveyor --spreadsheet-directory ../../test_cellveyor --spreadsheet-file Cellveyor-Sample-Gradebook-Shared.xlsx --sheet-name Main --key-attribute 'Student GitHub' --key-value "rodriguez03" --column-regexp "^(Summary Grade|Final Grade) .*$" --feedback-regexp "Summary Grade 1 - Feedback" --feedback-file ../../test_cellveyor/feedback.yml --github-organization Allegheny-Computer-Science-203-F2023 --github-repository-prefix computer-science-203-fall-2023-course-assessment --transfer-report --service-account-file service.json --spreadsheet-id 10mMsPZtKWREUIxqOzTQViSiqBsjeDHWqDMJtxOi-L34

This command contains new features such as the

  1. --service-account-file
  2. --spreadsheet-id
  3. --save-credentials (which isn't demonstrated here and needs to be updated eventually)

The output will produce the following:

🚚 Accessing: ../../test_cellveyor/Cellveyor-Sample-Gradebook-Shared.xlsx
Sheet Name: Main
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'Summary Grade for In-Person Assessment',
       'Summary Grade for Executable Midterms',
       'Summary Grade for Executable Final',
       'Summary Grade for Professional Development',
       'Summary Grade for Technical Development',
       'Summary Grade for Project Development', 'Summary Grade 1 - Feedback',
       'Final Grade - Percentage', 'Final Grade - Letter',
       'Submitted Grade (A-F)\n✨', 'Final GPA\n✨', 'Submitted GPA\n✨',
       'Grade Submitted\n🗓', 'APR Submitted\n🗓'],
      dtype='object')
        Email Address            Student Name  ...  Grade Submitted\n🗓 APR Submitted\n🗓
0                 NaN                     NaN  ...                 NaN              NaN
1  Gregory Kapfhammer  Kapfhammer, Gregory M.  ...               False            False

[2 rows x 19 columns]
==================================================
Sheet Name: TP
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'Team Participation 1', 'Team Participation 2',
       'Team Participation 3', 'Team Participation 4', 'Team Participation 5',
       'Team Participation 5 - Feedback', 'Team Participation 6',
       'Team Participation 7', 'Team Participation 8', 'Team Participation 9',
       'Team Participation 10', 'Team Participation 10 - Feedback',
       'Summary Grade for Team Participation',
       'Summary Grade for Team Part (%)'],
      dtype='object')
        Email Address  ... Summary Grade for Team Part (%)
0                 NaN  ...                             NaN
1  Gregory Kapfhammer  ...                             NaN

[2 rows x 19 columns]
==================================================
Sheet Name: IPA
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'IP1 - Professional Development',
       'IP1 - Technical Development', 'IP1 - Project Development',
       'IP1 - Overall', 'IP1 - Feedback', 'IP2 - Professional Development',
       'IP2 - Technical Development', 'IP2 - Project Development',
       'IP2 - Overall', 'IP2 - Feedback',
       'Summary Grade for In-Person Assessments\n👈'],
      dtype='object')
        Email Address  ... Summary Grade for In-Person Assessments\n👈
0                 NaN  ...                                        NaN
1  Gregory Kapfhammer  ...                                        NaN

[2 rows x 16 columns]
==================================================
Sheet Name: EXE
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'Executable Examination 1',
       'Executable Examination 1 - Feedback', 'Executable Examination 2',
       'Executable Examination 2 - Feedback',
       'Summary Grade for Midterm Exams\n👈', 'Executable Examination 3',
       'Executable Examination 3 - Feedback',
       'Summary Grade for Final Exam\n👈'],
      dtype='object')
        Email Address  ... Summary Grade for Final Exam\n👈
0                 NaN  ...                             NaN
1  Gregory Kapfhammer  ...                             NaN

[2 rows x 13 columns]
==================================================
Sheet Name: PFD
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'PFD1-1 - R: Passing GitHub Build?',
       'PFD1-2 - R: Spelling, Punctuation, and Grammar?',
       'PFD1-3 - R: Quality and Accuracy?',
       'PFD1-4 - W: Quarto-Based & Deployed?',
       'PFD1-5 - W: SE1 Professional Precis',
       'PFD1-6 - W: SE2 Professional Precis',
       'PFD1-7 - W: SE3 Professional Precis',
       'PFD1-8 - W: Professional Precis Reviews?',
       'PFD1-9 - DD: Contributed to Executive Summaries?',
       'PFD1 - Overall Quality of Professional Reflection',
       'PFD1 - Overall Quality of Professional Precis',
       'PFD1 - Overall Quality of Professional Development', 'PFD1 - Feedback',
       'Summary Grade for Professional Development\n👈'],
      dtype='object')
        Email Address  ... Summary Grade for Professional Development\n👈
0                 NaN  ...                                           NaN
1  Gregory Kapfhammer  ...                                           NaN

[2 rows x 19 columns]
==================================================
Sheet Name: TCD
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'TCD1-1 - R: Passing GitHub Build?',
       'TCD1-2 - R: Spelling and Grammar?',
       'TCD1-3 - R: Quality and Accuracy?',
       'TCD1-4 - W: Quarto-Based & Deployed?',
       'TCD1-5 - W: FB1 Technical Precis', 'TCD1-6 - W: FB2 Technical Precis',
       'TCD1-7 - W: FB3 Technical Precis',
       'TCD1-8 - W: Technical Precis Reviews?',
       'TCD1-9 - DD: Contributed to Exec Summaries?',
       'TCD1 - Overall Quality of Reflection',
       'TCD1 - Overall Quality of Technical Precis',
       'TCD1 - Overall Quality of Technical Development', 'TCD1 - Feedback',
       'Summary Grade for Technical Development\n👈'],
      dtype='object')
        Email Address  ... Summary Grade for Technical Development\n👈
0                 NaN  ...                                        NaN
1  Gregory Kapfhammer  ...                                        NaN

[2 rows x 19 columns]
==================================================
Sheet Name: PRD
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'PRD1-1 - R: Passing GitHub Build?',
       'PRD1-2 - R: Spelling and Grammar?',
       'PRD1-3 - R: Quality and Accuracy?',
       'PRD1-4 - G: Commit to Main Trunk?', 'PRD1-5 - G: Commit to PR Branch?',
       'PRD1-6 - G: Add to Issue Tracker?',
       'PRD1-7 - G: Create in Issue Tracker?',
       'PRD1-8 - G: Add to Pull Requests?',
       'PRD1-9 - G: Create for Pull Request?',
       'PRD1 - Overall Quality of Reflection',
       'PRD1 - Overall Quality of GitHub Commit(s)',
       ' PRD1 - Overall Quality of GitHub Issue(s)',
       'PRD1 - Overall Quality of Pull Request(s)',
       'PRD1 - Overall Quality of Project Contribution', 'PRD1 - Feedback',
       'Summary Grade for Project Development\n👈'],
      dtype='object')
        Email Address  ... Summary Grade for Project Development\n👈
0                 NaN  ...                                      NaN
1  Gregory Kapfhammer  ...                                      NaN

[2 rows x 21 columns]
==================================================
Sheet Name: WEB
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'Professional Development Web - 1',
       'Professional Development Web - 2', 'Professional Development Web - 3',
       'Professional Development Web - 4', 'Professional Development Web - 5',
       'Professional Development Web - 6', 'Professional Development Web - 7',
       'Professional Development Web - 8',
       'Professional Development Web 1  - Overall',
       'Professional Development Web 2 - Overall',
       'Summary Grade for Web Professional Development',
       'Technical Development Web - 1', 'Technical Development Web - 2',
       'Technical Development Web - 3', 'Technical Development Web - 4',
       'Technical Development Web - 5', 'Technical Development Web - 6',
       'Technical Development Web - 7', 'Technical Development Web - 8',
       'Technical Development Web 1 - Overall',
       'Technical Development Web 2 - Overall',
       'Summary Grade for Web Technical Development'],
      dtype='object')
        Email Address  ... Summary Grade for Web Technical Development
0                 NaN  ...                                         NaN
1  Gregory Kapfhammer  ...                                         NaN

[2 rows x 27 columns]
==================================================
Sheet Name: Tokens
Columns in the dataframe: Index(['Email Address', 'Student Name', 'Student ID', 'Student GitHub',
       'Student Year', 'Token Count\n✨', 'Used All Tokens\n🗓',
       'Requested Extra Tokens\n🗓'],
      dtype='object')
        Email Address  ... Requested Extra Tokens\n🗓
0                 NaN  ...                       NaN
1  Gregory Kapfhammer  ...                     False

[2 rows x 8 columns]
==================================================
Sheet Name: Feedback
Columns in the dataframe: Index(['buildfailure', 'buildfailure.1', 'congratulations',
       'congratulations.1', 'congratulations.2', 'congratulations.3',
       'badcommits', 'badcommits.1', 'goodreflection', 'goodreflection.1'],
      dtype='object')
       buildfailure  ...                               goodreflection.1
0   congratulations  ...                                  badreflection
1      infiniteloop  ...        goodreflection, goodprojectcontribution
2          reassess  ...  goodreflection, acceptableprojectcontribution
3               NaN  ...   badreflection, acceptableprojectcontribution
4               NaN  ...          badreflection, badprojectcontribution
..              ...  ...                                            ...
57              NaN  ...                                            NaN
58              NaN  ...                                            NaN
59              NaN  ...                                            NaN
60              NaN  ...                                            NaN
61              NaN  ...                                            NaN

[62 rows x 10 columns]
==================================================
Sheet Name: Lookup
Columns in the dataframe: Index(['Letter Grade', 'GPA '], dtype='object')
   Letter Grade  GPA 
0            A+   4.0
1             A   4.0
2            A-   3.7
3            B+   3.3
4            B-   2.7
5             B   3.0
6            C+   2.3
7             C   2.0
8            C-   1.7
9            D+   1.3
10            D   1.0
11            F   0.0
==================================================
dict_keys(['Main', 'TP', 'IPA', 'EXE', 'PFD', 'TCD', 'PRD', 'WEB', 'Tokens', 
'Feedback', 'Lookup'])

This Pull Request also contains a README.md file that contains a step by step process of how a person can create a Google Console API account alongside creating a credentials.json file and a service account file to connect it to their google sheet account.

@rodriguez03 rodriguez03 added documentation Improvements or additions to documentation enhancement New feature or request draft labels Dec 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation draft enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant