CS 257: Software Design

Web application: end-to-end system setup

Folder: webapp

Tag: end-to-end

Goals

Rubric

1 - names in source files and repo tagged 1 - data.sql is present and loads properly 1 - files are in the right places 2 - server runs and serves up a home page from route / or /index.html 2 - relevant endpoint works independently of webpage 3 - Javascript invokes API endpoint and puts data in browser display

Where are we?

So far, you have:

To complete your project, you need to put all these pieces together, plus some HTML/CSS/Javascript, into a functional system, and then refine it to do what you have envisioned (and to maybe do it better than you envisioned, since you'll have new ideas as you progress).

In my experience, this kind of project goes best if you use a light-weight iterative development process roughly like this. First, you set up a minimal version of your application that includes all the architectural components (e.g. a front-end page, a back-end server, a database, and an API) and the simplest possible communications between them (e.g. a little Javascript that calls a "hello"-style API endpoint, etc.). This baseline version of your application has essentially no features, but it has the architecture you need, and you can run it. Once you have this runnable shell of your program, you start "iterating":

  1. Identify a small addition to your project that will bring your application a little bit closer to its target. (Try to identify tasks that will take between 1 minute and 2 hours to do. Breaking your project down into small steps like this is sometimes hard, but it's usually possible, and always powerful.)
  2. Implement it
  3. Run the updated project and debug as necessary.
  4. Commit, pull, push.
  5. Done? Great! Otherwise, go to step 1

This current assignment's goal is to get you into this development loop.

How I'll test your submissions

To test this assignment, I will cd to your repository's webapp directory, and then:

The reason I'm describing this testing procedure is so that you can, if you wish, test this procedure yourself to make sure it works.

Your tasks

What do I expect again?

How would I pursue this if I were you?

Keep those questions coming, and have fun!