Project 1 Sprint 4
This agile sprint is a continuation sprint3
found here, which itself was a continuation of sprint2
found here and sprint1 found
here. An instructor's solution for sprint2 will be published shortly
after this assignment, at which time I will be unable to accept any late
sprint2 submissions.
Summary:In this final sprint you will build code to provide a
replacement for parts of the django admin and deploy the server so that
your solution included both the AI client and the server.
Due: Sunday
March 8th at 11:59pm (Spring Break officially begins on Monday March
9th) Well the snow messed that up.
Now Due:
Wednesday March 18th at 11:59pm For the coding portion, in class the
following week for the paper.
Important: Do all of your work in
the same github project as sprint1 Sprint2 and Sprint3.
Deliverable for Sprint4
- In this final Sprint you will build a complete application which will
- get a copy of the sqlite3 database from slack.
- write an interface that will allow a user to
- add or remove a room from available rooms
- change the capacity of a room from available rooms.
- if removing a room, be sure to remove the reservations for the
rooms as well.
- and report to the deleting user which usernames had their
reservations cancelled.
- save the report to a file
- the interface can be a GUI interface or a TUI interface, but not
just a command line prompt.
- Be sure to separate the interface
from the functions/methods that update the database
- deploy the server.
- get a copy of the server that I pointed you all at from sprint2: https://github.com/jsantore/Room_booking_serve
- One easy way might be to clone this repo somewhere on your
computer, then copy the result into a sub-folder in your project
- get your digital ocean server (our graduate assistant is the point
person on this and is out 3/2, but we will have these after that.)
- setup your ssh key for the server
- use github secrets for the ssh key
- adjust you github actions script to deploy the server and start it
automatically after each push. (only if the linting and build and
tests pass)
- Adjust your sprint3 to allow your code to interact with your server
instead of mine.
- Agentic coding:
- The delete for this server does odd things, using Agentic AI in
Jetbrains pycharm or google antigravity, adjust the delete so that
it doesn't return a body with its 204 and update your AI skill to
accordingly.
- adjust the get rooms
endpoint (again agentically) to work with the same date format as
the book room function. (I'm not sure we have time
for this with the snow, so the crossed out part is for
GRAD STUDENTs only)
- Automated Tests
- test that your database update functions work
- create a test database for this
- make sure you are testing the functions and not just looking for
the final result of the database.
- (Don't test the artifacts - test the code)
- This probably needs to be 3 tests, one for adding rooms, one for
removing a room and one for testing capacity changes.
- After deploying to the server, run one more test to make sure that
your server is up and running.
- write at least one other test of one of your production functions
- Readme:
- update your readme to explain which of your tests functions cover
which of the case in the test section above.
- add instruction so I know everything I need to in order to run
your program properly and painlessly on my machine.
- Evaluation (DUE in class the second class of the week after
spring break break as a physical paper):
- Write a paper evaluating your experiences with the design
tradeoffs and decisions you made.
- One of the outcomes of this class (and one of the big differences
from Junior to Senior practitioners) is to be able to examine the
tradeoffs and the decisions you made and how well they worked.
- use both your experiences and your experiences in the agile
retrospective with your classmates to write this paper.
- How did your choice of language work
- Would you use this language for this kind of project again?
Why or why not.
- Evaluate your choice of Libraries. I have tried to give your a
fair bit of freedom in choosing the libraries. As above would you
use these libraries again? why or why not
- Evaluate these LLM based agents for the potential to change the
industry
- Based on our limited work here - do you think this will be a
big change? Will we be asking our AI agents to "find me a new
microphone which costs under $40 and has more than 100 5-star
ratings" or something like that?
- in the first class of the week after spring break, we will do
our standard retrospective. In that retrospective, We'll discuss
the full project retrospective as well as just sprint4. Be sure to
include the results in your paper.
- Professionalism. Write
this paper in professional business English. If you are applying for
a nice Tech job, and I give this paper to your potential employer,
you should be happy about that - not concerned.
Submitting this assignment
At the due date (or since it is midnight - probably the next morning) I
will re-pull your project from the original repository for the readme and
program part
I will take the written papers (in standard Business English) in the
second class in the week after spring break.(Except for those grad
students who only meet once)