Franske ITC 2900 SP20 Possible Projects: Difference between revisions
BenFranske (talk | contribs) (Created page with "=Possible Projects= ==Power Monitoring== Research, explore, and demonstrate the use of the NUT UPS power monitoring software to manage large numbers of uninterruptible power s...") |
BenFranske (talk | contribs) (Undo revision 8299 by BenFranske (talk)) Tag: Undo |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Possible Projects= | =Possible Projects= | ||
'''NOTE: These are some ideas, there are many other possible projects. Discuss your own ideas with the instructor to see if they might be feasible.''' | |||
==Power Monitoring== | ==Power Monitoring== | ||
Research, explore, and demonstrate the use of the NUT UPS power monitoring software to manage large numbers of uninterruptible power supplies on the ITC network. Specifically, research the use of NUT and develop/implement a plan to connect a Raspberry Pi running Raspbian Lite and running NUT to every UPS in the ITC labs and connect them with static IPs to the ITC network. If time allows provide centralized status reporting via MQTT. | Research, explore, and demonstrate the use of the NUT UPS power monitoring software to manage large numbers of uninterruptible power supplies on the ITC network. Specifically, research the use of NUT and develop/implement a plan to connect a Raspberry Pi running Raspbian Lite and running NUT to every UPS in the ITC labs and connect them with static IPs to the ITC network. If time allows provide centralized status reporting via MQTT. | ||
Line 33: | Line 35: | ||
* Prepare a whitepaper and presentation detailing your research, testing process, and results | * Prepare a whitepaper and presentation detailing your research, testing process, and results | ||
== | ==Network Access Control== | ||
===Introduction=== | |||
The Inver Hills ITC department has an academic, demonstration, and research network ("ITCnet") which uses network devices from Cisco and HP and supports a number of virtual machines, hosts, and devices including Windows, Linux, Android, iPhone, and more. Network ports are not physically securable but it may be possible to improve security on this network by implementing some type of Network Access Control (NAC) which restricts access to network resources until a user authenticates to the network. Users on our network are stored in an Active Directory system which is also accessible through LDAP and RADIUS methods. It has been determined in previous groups that PacketFence is a reasonable option for NAC but test implementations with switches and wireless APs have not been completed. You task would be to setup and test PacketFence with the Cisco and HP/3Com switches we use as well as with the Ubiquiti UniFi APs (running OpenWrt) and to document your results. | |||
===Resources=== | |||
* Cisco Switches | |||
* HP/3Com Switches | |||
* Wireless APs and Controllers | |||
* Windows Server / Active Directory | |||
* PacketFence Open Source NAC | |||
===Deliverables=== | |||
* Design and implement a test network environment | |||
* Determine, test, and document configurations which will meet the 802.1x and captive portal requirements | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
==Linux Software Mirror== | |||
===Introduction=== | |||
Your goal with this project is to create a self-updating/sustaining Linux operating system local mirror which would allow ITC students to more quickly install and update their Linux systems. The primary OS which must be supported is Debian Linux but you may choose to include other Linux distributions in the mirror as well. The mirror should include a package repository as well as an ISO repository. Your mirror needs to automatically stay up to date with the latest Linux distribution files and should support delivering files over IPv4 and IPv6. It should meet the requirements for being a public mirror. | |||
===Resources=== | |||
* Linux VM | |||
* SAN backed storage | |||
===Deliverables=== | |||
* A working and self-updating Linux distribution mirror (at least for Debian, possibly other distributions as well) | |||
* Configuration documentation of the mirror | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
==Internet Archiving== | |||
===Introduction=== | |||
In this project your goal would be to work on Internet Archival projects with the [https://www.archiveteam.org ArchiveTeam]. Specifically, installing and running their Warrior VM for archival purposes as well as the ArchiveBot and possibly other archival systems. | |||
===Resources=== | |||
* Linux VMs | |||
===Deliverables=== | |||
* Running archival VMs | |||
* Configuration documentation of the system | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
==Internet Chat Systems== | |||
===Introduction=== | |||
In this project your goal would be to compare and install a variety of text internet chat server systems. Examples could include IRC, XMPP (Jabber), RocketChat, Mattermost, Zulip, or Matrix. | |||
===Resources=== | |||
* Linux VMs | |||
===Deliverables=== | |||
* Running chat servers | |||
* Configuration documentation of the system, comparisons of various chat server options | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
==Python Programming Projects== | |||
===Introduction=== | |||
There are MANY possible Python programming projects possible and could include local programs as well as cloud based serverless type programs (e.g. Azure Functions). Specific projects would depend on your existing Python knowledge and area of interest. Discuss these with your instructor. | |||
===Resources=== | |||
* Python! | |||
* Possibly other things depending on specific project | |||
===Deliverables=== | |||
* Code as open source under MIT license | |||
* Other deliverables depend on specific project | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
==Lecture Capture System== | |||
===Introduction=== | ===Introduction=== | ||
In this project you would be installing, testing, and documenting the [https://opencast.org/ Opencast] lecture capture system | |||
===Resources=== | |||
* Lecture Capture PC | |||
* Lecture Capture Hardware (cameras, pen display, audio interface, etc.) | |||
* Opencast software | |||
===Deliverables=== | |||
* Working lecture capture system | |||
* Configuration documentation of the system | |||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | |||
=Taken= | |||
==Network Automation== | |||
Research, explore, and demonstrate the use of network automation, the ability to configure and program network devices with software code. It's expected that you would build a small demonstration network and then install one or two network automation software packages to manage and make changes to the network. | |||
===Resources=== | ===Resources=== | ||
* | * Cisco Routers & Switches | ||
* 3Com/HP Switches | |||
* Network Automation Software (Ansible, Chef, Puppet, etc.) | |||
===Deliverables=== | ===Deliverables=== | ||
* Working | * Working network automation system | ||
* | * Documentation on setup and configuration | ||
* Prepare a whitepaper and presentation detailing your research, testing process, and results | * Prepare a whitepaper and presentation detailing your research, testing process, and results | ||
==VMware Virtual Machine Automation and Permissions== | ==VMware Virtual Machine Automation and Permissions== | ||
Line 56: | Line 129: | ||
* Prepare a whitepaper and presentation detailing your research, testing process, and results | * Prepare a whitepaper and presentation detailing your research, testing process, and results | ||
== | ==Canvas LMS Software== | ||
===Introduction=== | ===Introduction=== | ||
In this project you would install and test the Canvas Learning Management System software (LMS). This is similar software to Moodle or D2L. | |||
===Resources=== | ===Resources=== | ||
* | * Virtual Machines | ||
===Deliverables=== | ===Deliverables=== | ||
* Design and implement a test | * Design and implement a test environment | ||
* | * Install the Canvas LMS software | ||
* Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | * Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations | ||
Latest revision as of 01:50, 13 January 2021
Possible Projects
NOTE: These are some ideas, there are many other possible projects. Discuss your own ideas with the instructor to see if they might be feasible.
Power Monitoring
Research, explore, and demonstrate the use of the NUT UPS power monitoring software to manage large numbers of uninterruptible power supplies on the ITC network. Specifically, research the use of NUT and develop/implement a plan to connect a Raspberry Pi running Raspbian Lite and running NUT to every UPS in the ITC labs and connect them with static IPs to the ITC network. If time allows provide centralized status reporting via MQTT.
Resources
- Lots of Raspberry Pis
- UPSs
Deliverables
- Working NUT servers on every UPS
- Documentation on setup and configuration
- Prepare a whitepaper and presentation detailing your research, testing process, and results
Network Automation
Research, explore, and demonstrate the use of network automation, the ability to configure and program network devices with software code. It's expected that you would build a small demonstration network and then install one or two network automation software packages to manage and make changes to the network.
Resources
- Cisco Routers & Switches
- 3Com/HP Switches
- Network Automation Software (Ansible, Chef, Puppet, etc.)
Deliverables
- Working network automation system
- Documentation on setup and configuration
- Prepare a whitepaper and presentation detailing your research, testing process, and results
DNS and Web Deep Dive
Introduction
Explore the operation of DNS servers, Web servers, and related services by modeling how the Internet DNS system works. Includes deploying at least a root nameserver, a few TLD nameservers, some nameservers for particular domains, delegated nameservers, as well as a root Certificate Authority, experimenting with DNSSEC and DANE, and setting up demo webservers for sample domains (utilizing the DNS infrastructure, DNSSEC, DANE, SSL/TLS certificated, etc.)
Resources
- Lots of Linux server VMs
- BIND DNS Server (and/or Unbound DNS server)
- nginx web server
Deliverables
- Public Key Infrastructure setup (certificate creation, signing, etc.)
- DNS Server hierarchy with working DNSSEC/DANE access to webservers/sample domains
- Prepare a whitepaper and presentation detailing your research, testing process, and results
Network Access Control
Introduction
The Inver Hills ITC department has an academic, demonstration, and research network ("ITCnet") which uses network devices from Cisco and HP and supports a number of virtual machines, hosts, and devices including Windows, Linux, Android, iPhone, and more. Network ports are not physically securable but it may be possible to improve security on this network by implementing some type of Network Access Control (NAC) which restricts access to network resources until a user authenticates to the network. Users on our network are stored in an Active Directory system which is also accessible through LDAP and RADIUS methods. It has been determined in previous groups that PacketFence is a reasonable option for NAC but test implementations with switches and wireless APs have not been completed. You task would be to setup and test PacketFence with the Cisco and HP/3Com switches we use as well as with the Ubiquiti UniFi APs (running OpenWrt) and to document your results.
Resources
- Cisco Switches
- HP/3Com Switches
- Wireless APs and Controllers
- Windows Server / Active Directory
- PacketFence Open Source NAC
Deliverables
- Design and implement a test network environment
- Determine, test, and document configurations which will meet the 802.1x and captive portal requirements
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Linux Software Mirror
Introduction
Your goal with this project is to create a self-updating/sustaining Linux operating system local mirror which would allow ITC students to more quickly install and update their Linux systems. The primary OS which must be supported is Debian Linux but you may choose to include other Linux distributions in the mirror as well. The mirror should include a package repository as well as an ISO repository. Your mirror needs to automatically stay up to date with the latest Linux distribution files and should support delivering files over IPv4 and IPv6. It should meet the requirements for being a public mirror.
Resources
- Linux VM
- SAN backed storage
Deliverables
- A working and self-updating Linux distribution mirror (at least for Debian, possibly other distributions as well)
- Configuration documentation of the mirror
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Internet Archiving
Introduction
In this project your goal would be to work on Internet Archival projects with the ArchiveTeam. Specifically, installing and running their Warrior VM for archival purposes as well as the ArchiveBot and possibly other archival systems.
Resources
- Linux VMs
Deliverables
- Running archival VMs
- Configuration documentation of the system
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Internet Chat Systems
Introduction
In this project your goal would be to compare and install a variety of text internet chat server systems. Examples could include IRC, XMPP (Jabber), RocketChat, Mattermost, Zulip, or Matrix.
Resources
- Linux VMs
Deliverables
- Running chat servers
- Configuration documentation of the system, comparisons of various chat server options
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Python Programming Projects
Introduction
There are MANY possible Python programming projects possible and could include local programs as well as cloud based serverless type programs (e.g. Azure Functions). Specific projects would depend on your existing Python knowledge and area of interest. Discuss these with your instructor.
Resources
- Python!
- Possibly other things depending on specific project
Deliverables
- Code as open source under MIT license
- Other deliverables depend on specific project
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Lecture Capture System
Introduction
In this project you would be installing, testing, and documenting the Opencast lecture capture system
Resources
- Lecture Capture PC
- Lecture Capture Hardware (cameras, pen display, audio interface, etc.)
- Opencast software
Deliverables
- Working lecture capture system
- Configuration documentation of the system
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations
Taken
Network Automation
Research, explore, and demonstrate the use of network automation, the ability to configure and program network devices with software code. It's expected that you would build a small demonstration network and then install one or two network automation software packages to manage and make changes to the network.
Resources
- Cisco Routers & Switches
- 3Com/HP Switches
- Network Automation Software (Ansible, Chef, Puppet, etc.)
Deliverables
- Working network automation system
- Documentation on setup and configuration
- Prepare a whitepaper and presentation detailing your research, testing process, and results
VMware Virtual Machine Automation and Permissions
Introduction
The ITC department utilizes VMware based virtual machines for a variety of classes. There is currently a manual process to create many virtual machines for each class (including virtual networks, etc.), modify them during the semester (such as wiping the virtual hard drive, etc.), and assign students permissions to them, etc. In addition there have been challenges in identifying the minimum set of permissions which students need access to in order to use the VMs in a class but not have access to interfere with other VMs running for other classes or for departmental services. Your goal is to automate as much of the deployment, configuration, maintenance, etc. as possible as well as to determine the appropriate permissions for students so they do not encounter permissions errors when completing course tasks but do not have overly broad permissions.
Resources
- VMware ESXi Servers
- VMware vCenter Server
- Test VMs
- Python programming
Deliverables
- Permissions recommendations for VMware
- VMware Automation Scripts
- Prepare a whitepaper and presentation detailing your research, testing process, and results
Canvas LMS Software
Introduction
In this project you would install and test the Canvas Learning Management System software (LMS). This is similar software to Moodle or D2L.
Resources
- Virtual Machines
Deliverables
- Design and implement a test environment
- Install the Canvas LMS software
- Prepare a written whitepaper and oral presentation detailing the process, criteria, results, and configurations