Skip to the content.

Project Feature blog

Blog for Final

🏆 Accomplishments


1. Database Management

  • Ensured the proper functionality of database initialization (db_init), backup (db_backup), and restoration (db_restore).
  • Identified and resolved errors across all team members’ features to ensure smooth and reliable data handling.

2. API Setup and Support

  • Assisted team members in setting up their APIs and properly configuring main.py files for API functionality.
  • Provided guidance on coding database table creation for each team member’s unique feature.

3. CRUD Operations Implementation

  • Developed and verified CRUD (Create, Read, Update, Delete) methods for core database entities.
  • Ensured all team members’ features could efficiently interact with the database.

4. Deployment

  • Assisted in modifying frontend code to ensure successful deployment.
  • Deployed our website and verified its functionality.
  • Taught team members how to check deployment status using the terminal.

5. Frontend-Backend Integration

  • Supported team members in integrating frontend and backend systems for seamless communication.
  • Ensured API endpoints were correctly implemented and functioning as intended.

CPT requirement highlights:

1. Instructions for Input

  • Users enter their name, username, and favorite artists through a form, which triggers a POST request to the backend.
    UPDATED Name, username, and favorite artist is gathered and prepared to send backend as a POST request
    domextract

2. Use of a List (or Collection)

  • The backend stores artist recommendations in a dictionary of lists, allowing for efficient retrieval and updates.

    list

  • UPDATED The database table functions as a structured collection of records, storing and organizing user information efficiently. Each record (row) represents an individual user, while fields (columns) store specific attributes such as name, username, and favorite artists.
    database
    databasetable

3. Student-Developed Procedure

  • The loadUsers() function fetches user data from the backend and updates the displayed user list.
  • It takes no parameters, modifies the table dynamically, and handles errors gracefully.
    cptstudent

4. Algorithm with Sequencing, Selection, and Iteration

  • Sequencing: The function fetches data, processes it, and updates the UI step by step.
    post

  • Selection: If recommended artists exist, they are displayed; otherwise, “No recommendations available” is shown.

    selection

  • Iteration: A forEach loop iterates through all users to populate the table dynamically.
    foreach

5. Calls to Student-Developed Procedure

  • loadUsers() is called on page load and after user actions (adding, updating, deleting users).
  • This ensures that data remains updated without requiring a manual refresh.
    UPDATED
    delete

6. Instructions for Output

  • Visual output: The user table updates dynamically with names, usernames, and recommendations.
  • Textual output: Alerts notify users of errors or missing recommendations.
    table

PPR

1. Student Developed Procedure

  • The function get_recommended_artists(self, favorites) is clearly defined, with favorites as a parameter. It returns a list of recommended artists, fulfilling the requirement for a return type. The favorites parameter, which is a list of the user’s favorite artists, directly influences the recommendations returned. The function begins by initializing a dictionary of artist recommendations and an empty list (recommended_artists). It then loops through each artist in the favorites list, checking if the artist has recommendations available. If found, it extends the recommended_artists list with the suggested artists; otherwise, it adds “No specific recommendations available.” Finally, duplicates are removed with set(), and the function returns up to five recommendations.
    artrec

2. Student Developed Procedure Called

  • get_recommended_artists is called both when a uid is provided (to get recommendations for a specific artist) and when no uid is provided (to get recommendations for all artists).
    call

3. List

  • Storing Data in the List: The get_recommended_artists() method returns a list of recommended artists based on the user’s favorite artists, which is then added to the artist_data dictionary.
  • Using Data from the List: In the get() method, the data in recommended_artists is used by adding it to the response, showing how the list is dynamically populated and returned as part of the final output. Each user’s favorites is passed to the get_recommended_artists() method, and the resulting list is displayed as part of their data.
    call

PPR FRQs

1. Program Design, Function, and Purpose

  • The expected user of Melody Mates is a music enthusiast who wants to connect with others who share similar tastes in music. One way the program’s design meets the needs of this user is by providing artist recommendations based on the user’s preferred artists. This feature helps users discover new artists tailored to their musical preferences, enhancing their experience by making the platform more personalized and engaging.

2. Algorithm Development

  • The loop will run a number of times equal to the length of the all_artists list. There is no condition in the current implementation that would cause an infinite loop, as the loop iterates through a fixed list, and the body of the loop is designed to terminate after checking each artist. However, if the iteration was incorrectly structured with a while loop that fails to update or reduce the list, such as not removing processed artists, it could lead to an infinite loop.

3. Errors and Testing

  • A run-time error would be modifying the condition if artist not in user_favorite_artists: to if artist in user_favorite_artists:. This would cause the procedure to incorrectly add artists that the user has already favorited to the recommendation list. If further operations depend on this condition, it could lead to unexpected behavior or errors, such as trying to add a favorite artist multiple times, causing potential issues in other parts of the program.

4. Data and Procedural Abstraction

  • Initialize a counter variable count to 0. Then, iterate through the list of recommended artists. For each artist in the list, use the isEqual procedure to compare the current artist to the target artist. If isEqual returns true, increment the counter. After going through the entire list, return the counter value, which will give the number of times the target artist appears in the list of recommended artists.

Artist Recommendation Feature


The Artist Recommendation Feature generates personalized artist suggestions based on user input. When a user selects a favorite artist, the system retrieves and filters recommendations to align with their preferences. Users can update their selection, dynamically adjusting the recommendations.

Functionality and Implementation

  • Accepts user input (favorite artist).
  • Retrieves a pre-defined list of related artists.
  • Filters out previously favorited artists stored separately.
  • Updates recommendations when the user modifies their favorite artist.

Abstraction and Algorithms

  • Uses a stored dataset to manage artist recommendations.
  • Calls a procedure that processes user input and retrieves corresponding artists.
  • Applies selection to exclude previously favorited artists.
  • Implements iteration to update the recommendation list dynamically.


feature


Burndown list


Burndown
- Managed the initiated burndown list, ensuring the completion of all tasks and that feature fulfilled CPT requirements.


Issues

  • Created Kanban issues to manage and document project tasks.

    Frontend to Backend issue
    server

MCQ Corrections


mc1

  • Q11. A is correct as the binary number 11111111 is equal to 255 as each 1 is two to the power of its number placement in the binary number starting from zero left to right . So he binary number 11110000 is equal to 240. Therefore, the given binary triplet represents the color ivory. Light yellow binary RBG triplet by math should be (11111111, 11111111, 11100000)
  • Q23. D is correct as the algorithm in the flowchart requires both conditions to be true in order to set available to true. C is incorrect as both conditions need to be tru in order to set available to true
  • Q29. A is correct as Losssless compression is a technique that allows for complete reconstruction of the original data. B is an example of lossy audio compression where the file is compressed and transmitted.
  • Q39. C is correct as the program does not include the first element of the list in the sum because i is incremented before nums[i] is added to sum. By interchanging these two lines of code, the program will include all of the first ten elements of the list when computing the sum. Answer B doesn’t fix the problem but only terminate the program at 10.
  • Q40. D is correct as Certificate authorities are entities that issue digital certificates, which are used to certify the ownership of public keys. C is incorrect as domain names into IP addresses uses domain system which isn’t performed by certificate authorities.
  • Q43. C is correct as tt is possible to have redundant routing in both configurations. In configuration I, some possible routes between computers Q and V include Q-P-V, Q-T-V, and Q-R-S-V. In configuration II, some possible routes between computers Q and V include Q-S-V, Q-R-T-V, and Q-P-T-V. Redundant routing is configuration that has multiple paths so that if one route fails, data can still reach its destination through other routes.
  • Q47. C is correct because in order for a binary search on a list to work as intended, the list must be sorted. Even if it has duplicate values the binary search will work on any sorted list.
  • Q50. D is correct, For an algorithm to run in reasonable time, it must take a number of steps less than or equal to a polynomial function. Algorithm I accesses elements 2n times (twice for each of n elements), which is considered reasonable time. Algorithm II accesses n to the power of two elements (n times for each of n elements), which is considered reasonable time. Algorithm III accesses 10 elements, which is considered reasonable time.
  • Q51. A is correct, Creative Commons licensing allows copyright owners to specify the ways in which their works can be used or distributed. This allows individuals to access or modify these works without the risk of violating copyright laws.
  • Q59. C is correct, Open-source software has source code that is released under a license that allows users the rights to use and distribute it. However, there is no guarantee that the original developer of open-source software will provide support for its users. B isn’t correct as it allows developers to customize the source code to their needs
  • Q67. A and B are correct, For B code segment, count is increased to 1 the first time ”maple” is encountered in the list. However, count is reset to 0 when the code segment moves to the next list element. This causes the procedure to return 0 instead of the intended result 1.

Concepts to Improve

  • 2.2 Data Compression, 3.11 Binary Search, 5.5 Legal and Ethical Concerns, 4.2 Fault Tolerance, 5.6 Safe Computing
    • I struggled with recognizing key terminology and definitions in these concepts. To improve, I will study their applications and watch College Board videos to develop a clearer understanding.
  • 1.4 Identifying and Correcting Errors, 3.9 Developing Algorithms
    • Misinterpretation of questions and code led to incorrect answers. To strengthen my understanding, I will practice similar problems and write code to reinforce these concepts.
  • 2.1 Binary Numbers
    • I had difficulty understanding how binary triplets represent colors. To improve, I will practice converting between binary and color values to ensure mastery of this concept.

N@tM Feedback


feedback

  • Positive: Users liked the frontend design and features.
  • Improve Navigation: Make it more responsive, interactive, and user-friendly (e.g., better mobile support, hover effects).
  • Enhance UI/UX: Refine button styling and animations for a smoother experience.

Reflection and Retrospection

Interest in Others


bathroom
- I found this project particularly engaging because it applied computational problem-solving to a real-world issue. By developing a physical system to manage bathroom passes, the team successfully implemented a functional and efficient solution. Their system addressed a practical challenge by utilizing school-issued IDs to track student usage, ensuring an organized and transparent method for monitoring bathroom visits. The project demonstrated a clear application of abstraction and data management principles by leveraging unique identifiers to streamline the process.

LitConnect LitConnect


- I found the website LitConnect particularly interesting due to its well-structured approach to book tracking and recommendation generation. As an avid reader, I recognized the value of its features, which allow users to log books they have read, save books they wish to read, and receive tailored recommendations. This project effectively utilized data structures to manage and store user preferences, demonstrating the use of algorithms to enhance user experience through personalized suggestions. The inclusion of interactive elements further contributed to an engaging and user-friendly interface. —

Practice Live Review

  • Presented website to Ms. Pataki before N@tM.
  • Improved frontend and fixed issues based on feedback.

Individual Strengths & Weaknesses

Strengths Weaknesses
Proactive Learner – Not afraid to ask for help and encourages collaboration. Easily Frustrated – Can get discouraged and upset when facing obstacles.
Team-Oriented – Always willing to assist team members and ensure they stay on track. Prone to Simple Mistakes – Occasionally makes minor coding errors.
Effective Communicator – Explains concepts clearly to help others understand. Overly Serious – Can be too strict or serious in team settings.
Problem Solver – Committed to overcoming challenges and finding solutions. Big-Picture Thinker – Sometimes takes on large tasks instead of breaking them into smaller steps.
Dedicated & Hardworking – Continuously strives for improvement and personal growth.  

Project Reflection

Next Steps

  1. Feature Integration – Unify features into a cohesive system.
  2. Improved Authentication – Reduce manual input for logged-in users.
  3. Refined Design – Enhance UI/UX for a more polished look.
  4. Increased Functionality – Expand features for greater depth.

Strengths

Core Features Implemented – Artist recommendations work effectively.
Visually Engaging – The design captures user interest.
Unique Functionality – Includes personalized recommendations.

Weaknesses & Areas for Improvement

Overly Playful Design – Needs a more professional look.
Manual Input Issues – Some features require redundant user input.
Simplistic Structure – Could benefit from additional functionality.
Lack of Feature Integration – Features should work together more seamlessly.


Self-Evaluation

  • Project Contributions: Issues, Burndown Chart, Presentation (5 points)
    • Score: 4
    • Accomplished tasks that improved both my team’s progress and the overall project.
    • Created issues and maintained a burndown chart to track tasks and ensure team accountability.
    • Could have documented more detailed issues related to completed tasks.
  • Full Stack Project Demo, CPT Requirements, PPR, N@tM Feedback (2 points)
    • Score: 2
    • Frontend and backend integrate effectively, with all CRUD operations functioning properly.
    • Artist recommendation feature meets all CPT requirements.
    • Considered N@tM feedback for future improvements.
  • Project Feature Blog Write-Up (1 point)
    • Score: 1
    • Includes all required elements for retrospective analysis and future improvement.
    • Uses CPT and FRQ language appropriately to explain key takeaways.
  • MCQ Corrections and Concept Review (1 point)
    • Score: 1
    • Documented MCQ corrections, including explanations for incorrect answers.
    • Identified challenging concepts and outlined strategies for improvement.
  • Engagement and Reflection (1 point)
    • Score: 1
    • Showed strong interest in other projects at N@tM and reflected on what made them compelling.
    • Conducted a practice demonstration for Ms. Pataki to receive feedback before the event.
    • Evaluated both strengths and weaknesses of my project.
    • Submitted a summary of my live review topics 24 hours in advance.
    • Completed an honest and thorough self-assessment of my performance.
  • Self evaluation score: 9/10