Project 1 Sprint 2



Summary: This multi part project will provide you an chance to practice your programming skills and practice with the agile software development methodology, continuous integration, automated testing and other more industry oriented practices that we don't often use in academia.

This semester we are going to build a project for the CUBES project in the college of business here at BSU

In Sprint2 we will be saving our data into a database.

We will continue to use the same version control, continuous integration tools and programming language requirements that we put together for part one.



Sprint 2: Saving the Wufoo Entries data to a database



Due: Feb 8th at 11:59pm (Sprint 3 will be assigned just before sprint2 is due)


(some stuff was brought forward from last time, it is highlighted in gray)

  1. Use the same project that you used last time. I will just do a git pull on the project and get the updates.

  2. Pragmatically setup the database if the table(s) that you need are not already there.

  3. write a program which will, as before, with multiple methods/functions:


  1. Save all the data to the database! - be sure that I can delete your database and everything will still work. Also make sure I can run the program twice without deleting the database and everything will work.

  2. Write two automated tests

  1. Update your Continuous Integration/devOps on github to run these tests

  2. Update your readme.md for your project in the github project (you can do it with your jetbrains IDE if you like)

    1. the readme should have (if everything works this should be about a half page or less)

  1. Commit whenever you have some small additional part that works.

    1. Use good commit messages which tell everyone (especially me as your supervisor or collaborator standin) what this commit does. Be sure to push after each commit so that you lose little to nothing if your computer dies.

    2. So push early and often.


  2. Undergraduate only Send me your api key by slack so I can test yours (I tested your program on my form for the first project, now we need to do yours.

  3. Graduate students only: write a small server that will serve the data in your database directly to me. You choose whether you will serve it as a json file yourself or in some other format. It should automatically check your form once per day and get any new data at that point and put it into the database. Then in your github submission tell me how to access your server.
    1. linode and digitalOcean both have free trial programs. Most of the others do as well. Don't pay for this unless you want the server for other reasons.



If you want to min/max, here is the grading rubric/sheet/distribution