Within your course repository, create a directory "hw7". Commit and push to your remote repository.

cd <path_to_repo>
mkdir hw7
touch hw7/app.py
touch hw7/screencast_url.txt
git add hw7
git commit -m "initial commit for hw7"
git push

In this homework, you will utilize Aider to produce a security-related application of your choice. Within the hw7 directory create a virtual environment and install Aider.

cd hw7
python3 -m venv env
source env/bin/activate
pip install aider-chat
export GEMINI_API_KEY=$GOOGLE_API_KEY

You can launch Aider with the following command:

aider --model gemini/gemini-1.5-pro-latest

The goal of the exercise is to create as much functional code using as little effort as possible using Aider. Some example applications include generating:

As the application is developed, keep track of the prompts utilized to generate the code of your application as well as any prompts that LLMs may have found problematic. Upon completion of the application, push the resulting code and prompts (or URLs to prompt sessions) to your repository before class.

Screencast

Upon completing your application, via a narrated screencast of no longer than 5 minutes, you will perform a demonstration and source code walk-through of the application as well as a walkthrough of the main prompts used to generate it.

Upload your completed screencast on MediaSpace. Ensure that it is published as "Unlisted". Then, update the file screencast_url.txt in the homework's directory to contain the URL that your unlisted screencast on MediaSpace is located. Push the changes that include the updated URL to your repository before class.

Rubric

We will be using your screencast and git repository to evaluate your homework.

Demonstration of the various capabilities of the application

Demonstration of the various limitations of the application

Code quality (clean with no unused code or variables, readable, modular, documented with Docstrings and comments)

Walkthrough of source code and the prompts utilized via git commits on Gitlab

Instructions followed properly including code submission in the specified repository files, sequencing and length of screencast.