![]() |
About Our Team | Deployment Blog | Big Idea 4.0 | Shriya PRR |
Shriyas PRR
PRR
Checklist Feature Blog
---What is it?
The Checklist Feature is an interactive tool designed to allow users to add, manage, and track checklist items efficiently.
Unlike the previous Analytics API, which passively collected data, the Checklist API provides direct user engagement by enabling CRUD (Create, Read, Update, Delete) operations on checklist items.
PPR

Overview
My feature allows users to create, manage, and track checklists dynamically through an API, ensuring seamless organization and task management. The system processes online data streams in real time, efficiently handling checklist items while allowing users to interact with them through CRUD operations.
User Input & Submission
- Users can create custom checklists with multiple items.
- Each item can be marked as completed, edited, or removed.
- Users can mark checklist items as completed or incomplete.
- The data is stored and updated in real-time on an AWS-backed database for retrieval.
Backend Processing & CRUD Operations
- Create: Users can add checklist items specific to their account.
- Read: The system fetches and displays the user's checklist in real time.
- Update: Users can mark checklist items as completed or incomplete.
- Delete: Users can remove items they no longer need.
Features
- Add Items: Users can input items to their personal checklist. Stored in database via a POST request.
- Mark Items as Complete: Users can check off items via a PUT request.
- Delete Items: Users can remove items via a DELETE request.
- Fetching Items: A GET request retrieves user-specific checklist items.
Student-Developed Procedure (API Delete Method)

The delete(self)
function is a Flask route that removes a checklist item from the database, ensuring the user is authenticated with @token_required
.
It retrieves the current user and the JSON request data, checking if an id
is provided; otherwise, it returns an error. If the checklist item exists for the user,
it is deleted from the database, and a success message is returned.
Student-developed procedure being called

The deleteItem(id)
function sends a DELETE request to the backend API to remove a checklist item based on its id
.
It constructs the request using fetch
, includes the item’s id
in the request body as JSON, and updates the checklist
by calling fetchChecklistItems()
. If an error occurs, it logs the error message to the console, ensuring smooth debugging
and preventing application crashes.
Initializing Data

The initChecklist()
function initializes a checklist by inserting sample items into a database using SQLAlchemy.
It loops through a predefined list of dictionaries containing user_id
and item_name
, creates
ChecklistItem
objects, adds them to the database session, and commits the changes. This ensures users have
default checklist items while demonstrating iteration, data abstraction, and database management for the CSP Create Task.
AP CSP MCQ Retrospective & Improvement Plan

Performance Analysis
- After reviewing my AP CSP Practice Exam 1 results, I have identified key areas of **strength** and **improvement. My goal is to build on my strong foundation while improving weak areas to maximize my AP exam score.
---
Strengths: Areas Where I Excelled
- Data Representation & Storage: Strong grasp on binary numbers, data compression, and using programs with data.
- Control Structures & Algorithms: High performance in conditionals, loops, and algorithm development.
- Networking & The Internet: Deep understanding of Internet structure, fault tolerance, and parallel computing.
- Computing Ethics & Security: Mastery of computing bias, cybersecurity risks, and legal/ethical concerns.
Areas for Improvement
- Debugging & Error Correction: Need to improve on identifying and fixing coding errors efficiently.
- Library & API Usage: Struggled with utilizing built-in libraries and understanding documentation.
- Data Abstraction: Need to practice variable usage and function abstraction for cleaner, more efficient code.
Action Plan for Improvement
To improve before the final AP CSP exam, I am working to the following steps:
- Targeted Debugging Practice: Solve coding exercises that require finding and fixing logical errors.
- API Documentation Review: Work with APIs like Python’s `math` and JavaScript’s `fetch()` to improve function usage.
- Refactoring Code: Improve variable usage and abstraction in my projects to follow best coding practices.
Final Thoughts
- This helped me recognize both my strengths and weaknesses. By focusing on debugging, API usage, and algorithm efficiency , I can ensure that I’m fully prepared for the AP CSP exam.
Corrections
---Logic Circuit Analysis
Question: The diagram below shows a circuit composed of three logic gates. Each gate takes two inputs and produces a single output. For which of the following input values will the circuit have an output of true?
Answer: C → A = false, B = true, C = true, D = true
Why: The OR gate will produce true, and the first AND gate will produce true. Since both inputs to the second AND gate are true, the circuit's output will be true.
---Robot Movement Analysis
Question: Do Program I and Program II correctly move the robot to the gray square?
Answer: Both Program I and Program II correctly move the robot to the gray square.
Why: Both programs successfully navigate the robot through the grid using correct movements and rotations.
---Code Correction
Question: A student wrote the following program to remove all occurrences of the strings "the" and "a" from the list wordList. What correction is needed?
Answer: Inserting index ← index - 1 between lines 7 and 8.
Why: This ensures that the index is decremented after checking each list element, avoiding skipping elements.
---Binary Representation
Question: Which of the following can be represented by a sequence of bits?
Answer: An integer, an alphanumeric character, and a machine language instruction.
Why: All digital data is ultimately represented in sequences of bits.
---Spinner Simulation
Question: Which of the following code segments can be used to simulate the behavior of the spinner?
Answer: C
Why: The code correctly models the probability distribution of the spinner outcomes.
---Metadata Storage
Question: Which of the following is least likely to be stored as metadata for a black-and-white image?
Answer: A duplicate copy of the data
Why: Metadata typically describes the data rather than duplicating it.
---Course Grade Calculation
Question: How can a student's course grade be calculated from individual assignment scores?
Answer: finalGrade = Sum(scores) - Min(scores); finalGrade = finalGrade / (LENGTH(scores) - 1)
Why: This method accounts for dropped lowest scores before calculating the average.
---Simulation Complexity
Question: How does removing variables affect the runtime of a simulation?
Answer: The updated model is likely to decrease runtime.
Why: Simpler models require less computation, reducing runtime.
---Binary Search Requirement
Question: What condition must be met for a binary search to work?
Answer: The values in numList must be in sorted order.
Why: A binary search requires a sorted list to function correctly.
---Bit Allocation
Question: What is the minimum number of bits needed to assign unique sequences to 100 staff members?
Answer: 7 bits
Why: 7 bits allow for up to 128 unique sequences (2^7 = 128).
---Algorithm Complexity
Question: Which of the following algorithms run in reasonable time?
Answer: I, II, and III.
Why: All three algorithms run in polynomial time, which is considered reasonable.
---Execution Time Comparison
Question: How does the execution time compare between Version I and Version II?
Answer: Version II requires approximately 5 more minutes than Version I.
Why: Version II makes more calls to GetPrediction, increasing execution time from ~4 minutes to ~9 minutes.