Project 1

In this project, you will select a server application for Linux or Windows systems, install it on an instance or instances in AWS, configure it, secure it, demonstrate its functionality, and present your work to your peers in the form of a 10 minute recorded video presentation.

Proposal

Submit a project proposal (no longer than 1 page) that contains the following information:

  • What server application are you proposing to use?
  • What does this application do?
  • What references do you have that document how to install it on a server? Provide the links.
  • How will you demonstrate that you have successfully installed it?
  • What references do you have that explain how to properly secure this application? Provide the links.
  • How will you demonstrate that you have successfully secured it?
  • What will your project cost in terms of AWS credits? What is the basis of this cost estimate?

The instructor reserves the right to reject project proposals for applications that are “too easy” or have been chosen by “too many” students.

Project topics that are not allowed include, for example:

  • XAMPP "server in a box" scripts that auto-install everything with a single command
  • Quick-start AWS wizards that auto-deploy everything
  • Any managed AWS services, e.g. Relational Database Service (RDS)

Implementation

Now it’s time to do what you proposed!

  • Create instance(s) at AWS
  • Install the server application
  • Configure it (according to documentation of best practices that you have found)
  • Secure it (according to documentation of best practices that you have found)
  • Demonstrate that it functions

Suggestion: Take screenshots and thorough notes throughout the installation process so you remember what you did and can present it at the end.

Installation Report

As you proceed with your installation, document every (successful) step you take and every reference you use. A classmate should be able to follow your documentation and, without consulting any external references, arrive at the same functioning system that you have.

Your report should contain:

  • A brief (~2 paragraph) explanation of the system
  • Step by step documentation on installing the system, including commands entered and screenshots at significant steps in the process
  • A discussion of how to configure the system, including any configuration files or other important settings
  • A discussion of how to secure the system, including any configuration files or other important settings (such as AWS security groups)

Note: The installation report is where the bulk of the project points are assigned. If you don’t document it in the report, your instructor won’t know that you did it!

Presentation

Create a 10 minute (+/- 2 minutes) recorded video of your selected application and installation process. Your presentation should cover the following topics:

  • 2 minutes
    • Summary of what the application does
    • Demonstration that you have it successfully working in your AWS account
  • 8 minutes
    • How to install the application
    • How to configure it after it has been installed
    • How to secure it after it has been installed

Presentation Peer Review

Every presentation will be reviewed by 3 of your classmates (randomly assigned) through a Canvas assignment that is due after presentations are submitted. Peer reviews are anonymous.

Selected Topics

Subject to change prior to proposals being approved.

Name Topic / Server Application
Acosta Robles, Kevin Samba file server
Alasa-As, Symohn Maglinte WordPress web CMS
Avinash Jitsi video conferencing
Bhavsar, Riddhi Nebula overlay network (from Slack)
Chin, Cheng Ko PostgreSQL
Del Rosario, Laila Cabalbag Lychee photo management
Eskinder, Ruth Couchbase NoSQL database
Figel, Sean Seafile file syncing/sharing
Fines, Christopher Sarte Universal Media Server
Kan, Vanessa NextCloud file sharing/syncing
Khan, Eesa Rahil WordPress web CMS
Le, Hung NextCloud file sharing/syncing
Li, Yongyan CyberPanel one-click web console
Mata, Julian U Minecraft server
Pinnamaneni, Nitin Drupal 8 web CMS
Raboy, Brandon Luis Plex media server
Reyes, Marcos ownCloud file sharing/syncing
Riley, Cooper Patrick vaultwarden private password manager (w/docker)
Scully, Camryn Brittany ProjectSend file sharing/collaboration
Singh, Jugraj Jellyfin Media Server
Son, Thyphien Seafile file syncing/sharing
Wang, Hongyu MySQL database
Wu, Kenny MongoDB is web scale
Xing, Tianxiang MySQL database
Zhang, Mingxuan PostgreSQL

Example Topics

Selected projects from Fall 2020:

Grading

  • Proposal (10 points)
  • Installation (0 points) - All effort here must be documented in the report to “count"
  • Installation Report (90 points)
  • Presentation Video (40 points)
  • Presentation Peer Reviews (10 points)

Submission

Submit all files to the Canvas CMS site.

There will be separate Canvas assignments for:

  1. Proposal
  2. Installation Report (PDF)
  3. Presentation Video
  4. Presentation Peer Review