The Capstone Experience for the BSU Computer Science BS First (solo) Project






Project 1 Sprint 2 : Saving Data to a database

Summary: This second part of project 1 will provide you an chance to practice your programming skills and with databases and automated tests.


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


Due: Thursday Feb 10th at 11:59pm


For the Min/Maxers here is the grading sheet/rubric for this sprint

Details:

  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. Programmatically setup the database if the table(s) that you need are not already there. As one of my grading steps, I will delete your database and run your program to make sure it still works, creates the database and tables and fills them with data.
  3. create two tablesĀ  The first should be for the show headline data returned by the Top250 tv shows. It should contain at least the following columns
    1. the id (primary key)
    2. the title
    3. the full title
    4. the year
    5. crew
    6. imdb rating
    7. imdbrating count
  4. Create a second table for user ratings with at least the following columns
    1. imdbId (foreign keyed to the headline data id field)
    2. total rating
    3. total rating votes
    4. 10 rating %
    5. 10 rating votes
    6. 9 rating %
    7. 9 rating votes
    8. 8 rating %
    9. 8 rating votes
    10. 7 rating %
    11. 7 rating votes
    12. 6 rating %
    13. 6 rating votes
    14. 5 rating %
    15. 5 rating votes
    16. 4 rating %
    17. 4 rating votes
    18. 3 rating %
    19. 3 rating votes
    20. 2 rating %
    21. 2 rating votes
    22. 1 rating %
    23. 1 rating votes
  5. save the data from the queries in sprint1 to the database (and query the API to get the headline data for Wheel of time so that it doesn't fail your foreign key)
  6. Update your Continuous Integration/devOps on github to run the automated tests specified below

  7. Update your readme.md for your project in the github project (you can do it with your jetbrains IDE if you like) it should now contain:

        • your name

        • any install and run directions I need.

        • a brief description of what your project does

        • a very brief discussion of your database layout and the table(s) you used

        • a brief description of what is missing from the project (if anything)

  8. update your requirements.txt (python) or maven/gradle file (java) or other file that specifies external libraries as needed
  9. 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.

  10. Write two automated tests