Project 1 Sprint 2
This agile sprint is a continuation of
sprint1 found here. An instructor's solution for sprint1 will be
published shortly after this assignment, at which time I will be unable to
accept any late sprint1 submissions.
Summary: in this second of four sprints which build a larger
software solution you will put data into a database and begin implementing
DevOps and automated testing.
Due: Wed Feb 12th
Important: Do all of your work in
the same github project as sprint1.
Deliverable for Sprint 2
- Programmatically create an sqllite3 database to hold the data for the
two files full of job ads, both that I gave in in sprint1 [link
to same file here], Hint: each line is valid json, even if the who
file can't be parsed as valid json.
- and the new file with another 1300+ jobs
in it here - this file is in a slightly different format, each
line again is a valid bit of json, but these json job objects came from
a different API, so part of the challenge is to fit the two data sources
fit into the same database.
- your program should run whether the database exists or not (I'll run
the program twice while grading, once with the database already
existing and once without)
- You decide if you need one or more tables to hold the data.
- read the file with the jobs data and insert that data into the
database
- again it should not fail if the data is already there - nor should
it put the data in twice.
- you can skip putting in multiple links if you want, but keep at
least one for the database.
- update the appropriate github actions yaml file in your github project
to build/run/test/lint your project on the github docker containers.
- Write two automated tests
- one test should test the method that gets the data from the file
- eg make a known file, assure that you get the right number
of data items
- test to make sure you get the right data on at least one of them
(in a real context you would do first/ last and at least one in
between)
- The second test should create a new empty database, run your table
creation function/method, then run your save data to database method
then check to see that the database contains the test job that you
just put there.
- Make sure your two automated tests run on github and pass those tests
(along with the compile and linting)
Submitting this assignment
At the due date (or since it is midnight - probably the next morning) I will
repull your project from the original repository.