GithubHelp home page GithubHelp logo

cellveyor's Introduction

Cellveyor Logo

Cellveyor

build Code Style: black Maintenance License LGPL v3

Example Command

poetry run cellveyor --spreadsheet-directory \
/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file
CMPSC-203-Fall-2023-Gradebook.xlsx \
--sheet-name Main \
--key-attribute "Student GitHub" \
--key-value "gkapfham" \
--column-regexp "^(Summary Grade|Final Grade) .*$" \
--feedback-regexp "Summary Grade 1 - Feedback" \
--feedback-file /home/gkapfham/working/teaching/
github-classroom/feedback/all/feedback.yml \
--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/
developer-development/feedback-overall-course-assessment.yml \
--github-token <Private GitHub Acess Token> \
--github-organization Allegheny-Computer-Science-203-F2023 \
--github-repository-prefix computer-science-203-fall-2023-course-assessment \
--transfer-report

๐ŸŽ‰ Introduction

  • Cellveyor is a python program that produces assignment reports for students or classes. Using Cellveyor will publicly give grade reports including feedback for created assignments. Using the Cellveyor tool will quickly run and send reports to members included in a locally created google spreadsheet. By running the command created, this will quickly and automatically send out these reports in a very timely and efficient fashion.

๐Ÿ˜‚ Definitons

  • Cellveyor is a tool that automatically produces a report based output by analyzing a Google sheet
    • Student sentence: "I'm glad Cellveyor made it easy for me to see my grades from my classes, it's so easy to read and analyze."
    • Instructor sentence: "Cellveyor makes it much easier for me to tell my students what their grade looks like on a certain assignment or overall in the class"
    • Researchers sentence: "I found that Cellveyor is a very interesting tool that quickly and automatically does a task that is necessary in schooling"

๐Ÿ”‹Features

  • ๐Ÿš€ Fully customizable command line interface
  • โœจ Automated generation of grade-based reports sent to students
  • ๐Ÿช‚ Rich command line interface with many various arguments

โšก๏ธ Requirements

  • Cellveyor git hub repository
  • Local google sheet
  • Git hub token

๐Ÿ”ฝ Installation

Follow these steps to install the Cellveyor program:

  1. Copy the ssh key of the repo
  2. Git clone the repository onto your personal computer
    • git clone (ssh key)
  3. Type poetry run cellveyor --help to learn how to use the tool

cellveyor's People

Contributors

dependabot[bot] avatar evannelson04 avatar gkapfham avatar gyamfi01 avatar hayleepierce avatar jnormile avatar kevenduverglas avatar rodriguez03 avatar wolff01 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cellveyor's Issues

ReadMe Update

The ReadMe needs more documentation and needs to be up to par(like chasten).

  • Make a Logo for Cellveyor

Running List of Tasks to Complete

There are numerous issues that must be resolved before this tool is ready for
production use. This issue includes a running list of many of these issues. It
is intended to be used for brainstorming purposes. It should not be the final
location for the discussion of each of the issues in this list. Once the
priorities for the implementation of cellveyor are established the team should
create separate issues for all of the tasks that they plan to complete.

Setup

  • Add team members to the GatorEducator organization
  • Assign team leader(s) who will be 1/5 manager and 4/5 programmer
  • Assign student technical leader who will be the chief software architect
  • Ensure that all team members can contribute to the cellveyor repository

GitHub

  • Pick license
  • Pick code of Conduct
  • Implement basic GitHub Actions that installs dependencies and runs program
  • Note that running the tool in GitHub Actions will require access to a GitHub token
  • Ensure that GitHub Actions runs linting and testing tasks
  • Ensure that GitHub Actions can perform a tool release
  • Confirm that the tool works correctly on all of the major operating systems

Implementation

  • Add feature that supports access to a remote Google Sheet
  • Improve diagnostic information when the tool runs and then takes step(s)
  • Add logging information that can support debugging and error logging
  • Automated generation of the regular expressions to match specific columns
  • Consider borrowing useful implementation features from chasten tool
  • Create a constants.py module for storing all program constants

Testing

  • Write tests for all existing features
  • Ensure high coverage of all existing features
  • Write tests for all new features
  • Ensure high coverage of all new features
  • Confirm that the test suite passes on all of the major operating systems
  • Consider borrow useful testing strategies from the chasten tool

Documentation

  • README file
  • Command examples
  • References to similar tools
  • References to frameworks and libraries used in tool
  • References a publicly available Google Sheet for testing purposes
  • Give examples of regular expressions that match Google Sheet columns
  • Ultimately, the README should match the format inside of the chasten tool
  • Document in the README how to securely access GitHub through token creation
  • Document in the README how to securely access Google Sheets through token creation

Spreadsheet

  • Example Google Sheet (both with and without multiple "tabs")
  • Regular expressions that match column names
  • Ensure that there are no privacy violations for names and/or grades
  • Google sheet should have valid GitHub user names inside of it
  • Confirm that the tool works with real-world Google Sheets as well

GitHub Organization

  • There are technically two organizations: GatorEducator for the tool itself
    and another organization that contains all of the testing repositories
  • Ensure that the organization and all of its testing repositories are public
  • Create a GitHub Classroom organization for the newly created testing organization
  • Create example repositories that follow the GitHub Classroom naming standard
  • Ensure that all repositories are publicly available so as to allow easy testing
  • Confirm that the tool works with real-world repositories as well
  • Names of GitHub repositories must match names inside of the Google Sheet

Defects

  • The implementation of the feedback mechanism assumes that there will be some
    feedback provided. However, there may be situations in which the program should
    only report data in the spreadsheet and not report any information from the
    additional feedback column. This means that, as currently implemented, the
    program will crash when there is no provided feedback.

Crashing when there is no feedback

Right now our tool will crash if the command does not include any feedback. We want the tool to be able to run without any feedback included. We want the tool to run and still give grade, etc... just without feedback.

Link Existing Sheets to our Tool

Cellveyor is unable to have access (authorization) with existing google sheets. It is important to implement this in order to read and write in data from the sheets.

Adding the credentials.json File to gitignore File

Adding the credentials.json to the gitignore file will allow other users to input their own credentials without sharing it to everyone. It will also enable GitHub to not restrict developers to continue editing on this project.

Release Cellveyor to Pypi

We need to release Cellveyor to Pypi. This will prevent the name being taken in the future along with possible extortion for the name. Once this is done we will add a link in the repository to pypi with our readme on their website. Along with this we need Releases and Deployment on the repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.