Github Links to Code

Link to Video

I apologize for the music I was unaware that my recording software picked it up

Write-Up

  • Describe Procedural Abstraction, discussion on code and abstraction techniques used: Frontend/Backend, Functions, Classes, etc
    • Procedural abstraction is a programming concept that refers to the ability to break down a complex task or process into smaller, more manageable procedures or functions. These procedures can then be used as building blocks to construct larger, more complex systems.
    • In frontend/backend integration, procedural abstraction is used to separate the frontend and backend code into distinct, modular components. This separation allows developers to work on each component independently, making it easier to identify and fix issues and to scale the system as needed.
      • Both functions and classes promote procedural abstraction by allowing developers to break down complex tasks into smaller, reusable components. This avoids code duplication and maintains a modular structure
        • Within this database, models of each NBA player are defined in a class and instances with distinct parameters of this class are created. This prevents me from having to make 790 different classes to account for the 790 different NBA players
  • Describe Data Abstraction, discussion on data used and data structures to support project: JSON, Dictionaries, Lists, and/or Database Tables.
    • Data abstraction is a programming concept that refers to the process of hiding the implementation details of data structures and exposing only the relevant information to the user. This allows developers to work with complex data structures without worrying about the underlying details.
      • Data abstraction is crucial to ensure that data is stored and accessed efficiently and accurately. There are several data structures that can be used to support data abstraction, including JSON, dictionaries, lists, and database tables.
      • JSON, or JavaScript Object Notation, is a lightweight data interchange format that is easy to read and write for humans and machines. JSON can be used to represent complex data structures, such as objects and arrays, in a compact and efficient manner. JSON is widely used in web applications and can be easily parsed and manipulated using JavaScript and other programming languages.
        • A JSON is the result of a GET request from the API I set up & it is abstracted within the fronted by displaying data
      • Dictionaries are data structures that store key-value pairs. In Python, for example, dictionaries can be used to represent complex data structures, such as JSON objects. Dictionaries are efficient for looking up specific values based on a key, and they can be easily modified and extended.
        • A dictionary object is converted to a JSON by a get request in my API & also are nested within the list of NBA data
          • Link to dictionary usage in API
          • Link to nested dictionary usage in the search feature
      • Lists are another common data structure that can be used to support data abstraction. Lists allow developers to store a collection of values, such as strings or numbers, and manipulate them using methods like append, remove, and sort. Lists are particularly useful for managing large collections of data.
        • I iterate through lists of data after being parsed from its previous JSON format in all features
      • Database tables can be used to store and manage large amounts of structured data. Database tables provide a powerful and efficient way to query and retrieve data using SQL, or Structured Query Language. SQL allows developers to select, filter, and aggregate data in a way that is optimized for performance and scalability.
        • I establish different tables for the different kinds of data that I will be storing. There is a user table, a nba_players table, a comments table
  • Describe Usage of Control Structures, ie Iteration and Conditional Statements. Areas where you use lists and interation in Frontend Display. Areas were you decide and execulte different paths of code, for instance Create vs Read vs Update vs Delete. Also, show a function where a different parameter or condition causes a differen result.
    • Control structures, such as iteration and conditional statements, are essential programming concepts that allow developers to control the flow of execution in their code. Iteration, or looping, allows developers to execute a block of code repeatedly, either for a specific number of times or until a certain condition is met. Conditional statements can also be combined with iteration to create more complex control structures.
    • I implement control structures in my frontend design throughout all features
      • I iterate through, find, and display an NBA player in the search feature
      • I iterate through the list of users and display their correct/incorrect answers in the search feature
      • I iterate through and display the list of users in the timer feature
    • I run POST requests to create comments related to a user through use of ORM
    • I created a function to listen to the keys being entered into the search bar of the search feature and only ran the search function if specifically the enter key is pressed. There is no result in the event that the enter key is not pressed