Skip to content

An application that assists with grading CS assignments. This project is being supervised by Joseph Ditton

Notifications You must be signed in to change notification settings

ArKade523/CSgrading

Repository files navigation

Computer Science Course Assistant Grading Application

Introduction

This document outlines the requirements and development milestones for a desktop platform to assist Computer Science course TAs. The application will facilitate the downloading, uncompressing, and running of student assignments, starting with Django projects.

Requirements

Software and Tools

  • Node.js and npm
  • Electron.js
  • Docker
  • Monaco Editor
  • Python (for Django)
  • Additional language environments (Node.js, Java, C++, etc.)
  • Git and GitHub (for version control)
  • React
  • Vite
  • electron-vite
  • Redux Toolkit
  • Yaml
  • React-Toastify

Functionality

  • User Interface for managing assignments
  • Integration with Monaco Editor for code display and editing
  • Docker integration for running code in isolated environments
  • Support for Django projects
  • Expandable to support other languages and frameworks
  • Security measures for safe execution of code
  • Canvas LMS API integration for downloading submissions

Milestones

Milestone 1: Project Setup

  • Initialize Electron.js application
  • Set up basic project structure (folders, basic files)
  • Version control setup with Git

Milestone 2: User Interface Development

  • Design and implement the main UI layout
  • Integrate Monaco Editor
  • Implement file management system (download, unzip, etc.)

Milestone 3: Docker Integration

  • Create Dockerfile for Python environment
  • Implement Docker container management in Electron app
  • Test running Python projects in Docker

Milestone 4: Canvas LMS API Integration

  • Research Canvas LMS API for submission downloads
  • Implement API integration in Electron app
  • Test downloading and unzipping submissions

Milestone 5: Additional Language Support

  • Add Docker environments for Node.js, Java, C++, etc.
  • Test running projects in these environments

Milestone 6: Security and Testing

  • Implement security measures for code execution
  • Thorough testing of all features
  • Bug fixing and optimization

Milestone 7: Documentation and Deployment

  • Create user documentation
  • Package and deploy the application for use

Canvas LMS API Integration

To access the Canvas backend API for downloading student submissions, you will need to:

  1. Obtain API Access: Register for developer access on Canvas LMS to get an API key.
  2. Understand the API: Familiarize yourself with the Canvas LMS API endpoints, particularly those related to assignments and submissions.
  3. Implement API Calls: In your Electron app, implement functionality to authenticate with the Canvas API and retrieve submission data.
  4. Handle File Downloads: Implement logic to download and manage zip files of student submissions.

References

Project Setup

Install

$ npm install

Development

$ npm run dev

Build

# For windows
$ npm run build:win

# For macOS
$ npm run build:mac

# For Linux
$ npm run build:linux

Conclusion

This document outlines the key requirements and milestones for the development of the Computer Science Course Assistant Application. Each milestone represents a significant step towards the completion of the project.


Kade Angell, supervised by Joseph Ditton


Document generated by ChatGPT

About

An application that assists with grading CS assignments. This project is being supervised by Joseph Ditton

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages