4. A Django Application#

To achieve this milestone you should have completed the Django tutorial and built your own Django application. For credit you have to make a GitHub release as described below and review a peer’s work by running the test procedure in another student’s repository.

GitHub Release#

Note

In class I show you how to make a release. Step instructions are in GitHub’s official documentation.

A release of software in a repository is a commit number that gets one or more extra names, like v1.0.2. A release tells the world that the commit contains software that the developers believe is ready for other people to use. Certain milestones will have release versions associated with them that I can view in GitHub. Making a release ensures that reviewers see the version you turned in, even if you make commits before anyone has a chance to check your milestone.

Each time you turn in a milestone you will need to create a new release number. They should follow a template like this:

milestone-N.X

Replace N and X with the following:

  • N: The milestone number (for this milestone it is 4)

  • X: The submission number (1 for the first time you turn it in, 2 if you resubmit, etc.)

Peer Review#

Reviewing other people’s project is required to get credit for your milestone. Code reviews are helpful to both the reviewer and the person who’s being reviewed. The reviewer gets good practice and the reviewee gets feedback. A good code review has to lead the reviewee to any problems that the reviewer encountered. So when you review another student’s code remember to provide them all the information they need.

As a reviewer your job is to carefully follow each of the steps in the procedure to see if you can successfully complete it. If there’s a problem you can stop and report the problem to the reviewee. You don’t have to suggest a fix to the reviewee but you’re welcome to. A problem report must contain the following information:

  1. The steps taken (copy and paste the commands into the report)

  2. The error message or problem seen. This should be a copy/paste or a screen grab so the reviewee can see exactly what happened.

Peer reviews are new this semester so some of the details are being worked out.

Test Procedure#

Test your milestone by running the following procedure. Test your own milestone before you submit. After you submit your milestone find another person’s submission and test theirs.

Only Test a Release

It’s essential to only test the code snapshot in a release, not the main branch. Your reviewee should have posted a URL like this:

https://github.com/your-name/your-cis-92-repo/releases/tag/milestone-4.1

Notice that it ends with releases/tag/mileston-4.1. If it doesn’t look like that they posted a link to the main branch. Stop and let them know.

The test procedure is:

  1. Open the milestone in GitHub Codespaces. Make sure it’s the milestone release, not main

  2. Open mysite/mysite/settings.py and verify that each of the following variables is set according to the instructions in 4.3. Configuration with Environment Variables:

    1. SECRET_KEY

    2. DEBUG

    3. ALLOWED_HOSTS

    4. DATABASES

    Error

    If any settings are missing or incorrect report it to the reviewee.

  3. Change to the mysite/ directory inside of your repository.

    $ cd mysite
    
  4. Look for any SQLite files:

    $ find / -name '*.sqlite3' 2>/dev/null
    

    Error

    If the find command reveals any files flag this as an error.

  5. Install the needed Python utilities.

    $ pip install Django==4.2.9 psutil
    
  6. Apply Django migrations (to create a fresh DB)

    $ python3 ./manage.py migrate 
    
  7. Make an admin account:

    $ python3 manage.py createsuperuser 
    
  8. Run the server and open the index page:

    $ export SITE_NAME="Test Site"
    $ export STUDENT_NAME="Your Name Here"
    $ python manage.py runserver 0.0.0.0:8000 
    

    Error

    Replace Your Name Here with your name and verify that the application shows you your name and Test Site on the index page.

  9. Verify that the user credentials you created are the ones used by the app

  10. Take a screenshot of the reviewee’s app running with your name.

Submit#

  1. Make a release called milestone-4.X

  2. A URL to your milestone release on GitHub. It should look like this:

    https://github.com/your-name/your-cis-92-repo/releases/tag/milestone-4.1
    
  3. One helpful hint you that you would have liked when you started this milestone.