Final Sprint Plan Overview

Below are the primary aspects I’d like to tackle in this final Sprint.

  1. Finalize/add to project (Settings Feature) based off of new requirements discussed in teacher issue.
  2. Add to project based on peer and previous teacher feedback for feature to aid with work finalization, possibly even adding more settings options, for example.
  3. Continue to document learning and work until the end of the year in Time Box/blog using Plans, Hacks, and Tangibles categories and reflect on computer science experience throughout all three trimesters.

New shared repositories:

Final Project Additions for Requirements from Teacher Issue

  • “Loops (Algorithmic): show specific example of building a List using List Comprehension. Show examples of processing a list using conventional and for each methods”
    • Current settings features don’t have much potential in this category
      • I plan to create a new settings feature: list of favorite items, corresponding to a user
        • Would involve either a separate SQLITE database table in the backend or a separate column in the ‘users’ table that stores the corresponding user’s list of items they favorited via the frontend
        • Fulfills requirements: when a user accesses the settings page, use list comprehension to build list of favorite items (retrieve user’s favorite items from database –> construct a list using list comprehension)
          • Then process list using conventional methods like ‘for’ loop or ‘for each’ method
  • “Sorting / Searching (Algorithmic): show examples of sorting and searching using the backend of your project.. FYI, SQLAlchemy allows filtered selections and sorting. Additionally, you have sorting options discussed in tech talk”
    • Likely showcase sorting and searching operations using SQLAlchemy queries
      • Ex: retrieve users sorted by ID in descending order, search for a user by their username, etc.
        • Get more ideas and context for requirements/expectations from tech talk…
  • “Deployment (Full Stack): a complete deployment illustration multiple people using and updating your Full Stack Web Application simultaneously”
    • Deploy with AWS
      • Login functionality, authentication
        • Use @token_required to guard most actions, like Username, UID, and PFP changing
      • Simulate concurrent updates to database (user info) from multiple users

Final Project Additions/Revision from Feedback

Teacher Feedback

  • Potentially add more settings to better fulfill expectations of being “The Settings Guy”
    • Ex: the one I discussed earlier (storing favorite items)
  • Alter user database data (credentials) form food themed to something that better fits our topics
  • Employ new teacher requirements discussed in teacher issue

Peer Feedback

  • Add more settings (similar to previous teacher feedback)
  • May be better to make theme changing change whole page rather than just form container
  • More security so that users can only change their own Username, UID, etc.
# example of using list comprehension to build fav. item list
user = User.query.filter_by(id=user_id).first()
favorite_items = [item.name for item in user.favorite_items]
# example of processing list using conventional methods
# conventional method
for item in favorite_items:
    print(item)
# for each method
favorite_items_string = ', '.join(favorite_items)
print(favorite_items_string)