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 time we will be saving our data into a database.
Tools:
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 Jobs data to a database
Due: Wed
Feb 7th at 11:59pm Friday
Feb 9th at 11:59pm Because I didn't
really do automated test examples in the Mon/Wed class till the original
due date (I blame the fire alarm testing in that class). I am pushing
the deadline till Friday. I don't anticipate any more fire alarm testing
so we shouldn't have to do that again. Sprint3 will still be assigned
this week so you can get started. I'll publish my solution to sprint2
over the weekend at which point I won't be able to take any late
submissions.
Use the same project that you used last time.
I will just do a git pull on the project and get the updates.
Pragmatically setup the database table(s) that you need are not already
there. (Your project should work whether or not the database is there right
now)
write a program which will, as before, with multiple methods/functions:
- Get the 5 pages of data from the API as in project1
- Save the data to the database!
- you need to save at least the locations, the job title, company
name, the job description, the locations for the job, whether or
not it accepts remote, how long ago the job was posted, the salary if
available, the company name,
- put the qualifications into a separate foreign-keyed table
- include at least one related link - for each job (optionally all of
them) either in your main table or in another foreign-keyed table
- Write two automated tests
- one test should the method that retrieves the data from the web and
assure that you get at least 50 data items
- 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 university that
you just put there.
- Update your Continuous Integration/devOps on github to run these tests
- Update your readme.md for your project in the github project (you can
do it with your jetbrains IDE if you like)
- the readme should have (if everything works this should be about a
half page or less)
- 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
- including how they are related.
- a brief description of what is missing from the project (if
anything)
Commit whenever you have some small additional part that works. Commit
and push to github early and often so that if your laptop does
spectacularly, you don't lose much.
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.
So push early and often.
If you want to min/max, here is the
grading rubric/sheet/distribution