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.
- 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
- 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
- Initialize Electron.js application
- Set up basic project structure (folders, basic files)
- Version control setup with Git
- Design and implement the main UI layout
- Integrate Monaco Editor
- Implement file management system (download, unzip, etc.)
- Create Dockerfile for Python environment
- Implement Docker container management in Electron app
- Test running Python projects in Docker
- Research Canvas LMS API for submission downloads
- Implement API integration in Electron app
- Test downloading and unzipping submissions
- Add Docker environments for Node.js, Java, C++, etc.
- Test running projects in these environments
- Implement security measures for code execution
- Thorough testing of all features
- Bug fixing and optimization
- Create user documentation
- Package and deploy the application for use
To access the Canvas backend API for downloading student submissions, you will need to:
- Obtain API Access: Register for developer access on Canvas LMS to get an API key.
- Understand the API: Familiarize yourself with the Canvas LMS API endpoints, particularly those related to assignments and submissions.
- Implement API Calls: In your Electron app, implement functionality to authenticate with the Canvas API and retrieve submission data.
- Handle File Downloads: Implement logic to download and manage zip files of student submissions.
- Canvas LMS API Documentation: Link to Canvas API Docs
$ npm install
$ npm run dev
# For windows
$ npm run build:win
# For macOS
$ npm run build:mac
# For Linux
$ npm run build:linux
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