Skip to content

05.01 Project Specification ​

Week 5 · 60 points

Overview ​

You will be working on an application or design of your choice. Students are allowed to work on any project as long as the following constraints are met:

  1. Your project must be full-stack and use AWS EC2 on the backend.
  2. This is the initial draft that you must submit for approval.

Banned Ideas ​

  1. Anything that operates in a legal gray zone. For example, using Nintendo ROMs to build an emulator or to host them on a website.
  2. Pretty much anything Disney
  3. NO adult-oriented apps (I can't believe I have to mention this). If you have an idea and are unsure whether it qualifies as "adult-oriented," do not email me to ask. Your instincts are likely correct. CHOOSE SOMETHING ELSE!

Minimum Project requirements ​

Below is a breakdown of the minimum requirements that your application must meet.

  • Have a landing page with navigation to all your other pages
  • Each page should have a shared header and footer with navigation and appropriate information
  • Have multiple forms that allow you to submit, update data, and delete data
  • You must have a way to retrieve data and display it on a separate page conditionally (like a search page). You can do this any way you wish, but you cannot just return the entire database.
  • Have at least 7 distinct pages
  • All your pages must be styled with a framework like Bootstrap
  • Bash scripts that will set up a new EC2 instance, install all required packages and configure your server to run your application on boot

Project Ideas ​

Can't think of anything to build? Here are some ideas:

  • The Google graveyard has (at the time of this writing) 296 dead projects. Keep in mind that Google thinks in billions: billions of users, billions of dollars, and billions of servers! So a lot of these projects were killed not because they were bad ideas or unsuccessful, but because they were just not in the billions.
  • Write a web game.
  • Extend the Canvas Mini-lab to something more complex to help you as a student
  • You will be working on this app for most of the semester so it must be substantial in scope. A simple TODO app or other ideas that can be completed in an afternoon are not acceptable.

Task 1: Project Specification ​

For this task, all you have to do is create a Google Doc to describe what you intend to build. Your Doc should include enough detail for me to have a good idea of the project's scope and length, and it must be at least 900 words. At a minimum, you should detail the following:

  • You need to give the details below, even if you are using the example tech stack. Make sure to specify the following:
    • Backend Language
    • Backend Framework
    • Database
    • Frontend Templates
    • Frontend Styling
    • The three required scripts: start.sh (installs every dependency and starts the app on a fresh clone), deploy/setup-ec2.sh (one-time server setup) and deploy/deploy.sh (deploys from your laptop). See 07.02 for what each script does.
    • Detailed instructions for how to install, configure, and run your app.
    • How are you going to do automated testing

Required Sections ​

  • Overview
    • What is the general theme? For example, a photo gallery, recipe repository, Twitter clone, e-commerce inventory, API-driven data mining, a generic wedding, a message board for the class, dentistry, etc.
    • If you are cloning an existing site, make sure to give links to that site.
  • Target audience - Who is the target audience? For example: The general public, family members, research scientists, students, etc. How is your app useful, and what niche does it serve?
  • Functionality - What is it going to do? For example, draw customers to a photography business by showing a portfolio, pricing, contact information, and booking. Mine data from IMDB to answer questions about movies and movie stars. Forum to facilitate communication between users. Etc. Label every feature beyond the minimum requirements as core or stretch.
  • Database Schema - What sort of data will it manage? Sketch out a high-level schema for your database that lists every table with its fields and types. Don't worry, you can change it later. This is just to get you started.
  • Media - What media will you need or create? Where are you going to get your images? AI-generated stock photos, etc.
  • Wireframes: You will need to create wireframes for each of your planned pages. You can use any tool to create the wireframes. You need to explore the available tools and detail how you will create wireframes for your application. You can use a tool such as Moqups or Figma to create your wireframes, or just draw them and scan them into your document. You don't have to pay for a tool; free tools work fine.
  • Schedule - There will be seven project checkpoints in the last 8 weeks of class. Detail out a rough schedule of what you will have accomplished at each checkpoint. The checkpoints need to give concrete deliverables that can be assessed. NOTE: The checkpoints in the example below are specific to the example. Your project should have a customized set of checkpoints; do not just blindly copy and paste from the example.

Submitting ​

Submit your Google Doc so I can approve your project.

  • Share your Google Doc and then submit the URL below.
  • Use the rubric in 06.02 (the final draft) for grading requirements.
  • I have created an example submission to help guide you. The example is what I would consider C- level work.

Grading:

  • This is your first draft and is pass/fail. I will provide feedback to you via Canvas if you need to improve or add more work. Once you have feedback from both me and your peers, you will resubmit a final draft for a letter grade.

Released under the MIT License.