SDL Projects for 2020-2021

There are two instructors in Fall, 2020. Some of the following projects are assigned to a specific instructor, but others will be determined based on interest. Continuing projects include both those under current development and ones that were developed in the past. In some cases the technology is specified, but in others the team can help pick the technology with the product owner's approval. Projects are in alphabetical order and numbered for convenience.

We will send a survey to all students who are likely to take SDL in the fall. The students will rank the projects by order of interest; instructors will form the teams based on the interests. We are generally able to place everyone in one of their top choices, but this is not always possible. If a student does not rank projects, then that student will be assigned to whatever team has open positions. You will work on the project for a year, so it is important that you express your interests.

1. Chix 4 A Cause

Continuing project: A previous team built an iOS mobile app for users to interact with the Chix-4-a-Cause charity organization. This includes managing inventory and sales related to their Gifts of Love. Android support is needed for this application as well as new administrative functions. The primary effort would be in Android, but iOS support is also anticipated.

2. Cluster Utilization Visualizer

PO: Dr. Riley

New project: While the high performance cluster (Rosie) has a number of tools to monitor usage and performance, such as those in NVIDIA's DCGM package, that data is not presented in a usable form. This project would be to develop a website that displays system usage in ways that can be more useful for system administors and would be appropriate on the public screens around Diercks Hall. The technology for this project has yet to be determined.

3. CTS Consulting Dashboard

4. eSubmit improvements

PO: Dr. Rob Hasker or Dr. Josiah Yoder

Continuing project: eSubmit is used frequently for single-student assignments; a request has been made to add support for team-based assignments and git. There is also a need to simplify creating assignments and editing them so instructors can fix errors more quickly. This system is developed using Ruby on Rails.

Instructor: Dr. Yoder

6. Guided Retrospective Tool

PO: jkschanke@gmail.com (Centare)

New project: When working in scrum, facilitating retrospectives can be difficult if no one on the team is experienced with it, or even harder, if it is a remote team. Creating a web application to guide retrospectives to guide the team through the retrospective, gather data, and create action items would be valuable for many scrum teams. Possible retrospective formats would include the standard 3 questions or potentially more involved formats like those on https://retromat.org/.

7. Magnetek: Lift Drive Support

This project is not running in 2020-21.

8. OpComp Web App

PO: Dr. Rob Hasker

Continuing project, but likely a complete redesign of the existing system: The OpComp web application supports the programming contest for high school students that is held on campus every fall. Last fall we held the contest with over 200 students in Diercks Hall. The students put tremendous energy into the contest with exciting results. While the application is functional, it has a dated interface that limits the number of students that can participate. Updating the interface and providing additional support for executing code would help keep students motivated and support additional students. The current system is built using Java Applets; we would anticipate that this system would be converted to an undetermined platform.

9. Schedule Evaluation Tool - MSOE

POs: Dr. Chris Taylor and Dr. Steve Williams

Continuing project: Before the schedule of classes is released to students, it needs to evaluated for robustness. For example, it is important to identify whether course (or section) schedules provide adequate opportunity for all students to obtain the courses they need. This is currently done using ad-hoc methods that are inadequate. The goal of the project is to build a software tool that could help validate the proposed schedule of classes and identify potential weak points. Future work includes improving metrics and designing the user interface to improve feedback. There is also interest in extending the tool to consider multiple majors at the same time and provide data that would be useful for the Registrar's Office. The back end technology of this system is Python with Flask, the front end technology is React and Redux.

10. Shadowrun Character & Play Assistant

PO: Scott Sauer of Centare

Continuing project: Shadowrun is an extremely fun, though complicated, tabletop gaming system. While some of its competitors come with a host of electronic tools that can make the process of playing the game easier, Shadowrun's is inadequate. The best solution that currently exists is a winforms app (called "Chummer") that is laden with bugs, poor UI decisions and archaic design. An initial version of this project has been developed; it needs to be extended to support additional game features such as magic, multi-player support, and redesigning the interface to be mobile-friendly. The goal will be to deploy a usable system in the coming year. This is a React project using node.js.

11. Up-cycling Network for Makerspace

PO: Pete Reynolds

Continuing project: Up-Cycle Makerspace is about connecting schools and industry together in a mutually beneficial network to make sure no material goes to waste. Businesses often have leftover material that they don't need, and school tech classes and community makerspaces are in desperate need of extra material. This project provides a network to gather, store, and exchange material, tools, and knowledge between organizations so that everyone can get access to the things they need. Major improvements include supporting tracking projects as they are transferred, grouping people by organization, and generally improving navigation. The front end web app is built in React with NodeJS, and connects to a Django backend through a GraphQL API.