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 - the server runs and serves up a rudimentary home page at route / 4 - the page served by route / contains a button named "Get data" which, when clicked, retrieves data from your database via a Javascript fetch from your API; when the data arrives, the page's user interface is modified to display some of the data 2 - the relevant API endpoint works independently of the web page

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!