1908901 / elliepang

Apache License 2.0
0 stars 0 forks source link

Final Project Review #23

Open 1908901 opened 1 year ago

1908901 commented 1 year ago

Peer Live Review

Item Self Score Peer Grader 1: Ishi Peer Grader 2: Lina Average
Observe Team project quality, runs on cross-domain, performs all evaluations without crashing. 1 1 1 1
Observe, Individual UI contains inputs that are validated for garbage, data cleaned (ie validate DOB or Password) 1 1 1 1
Observe, Individual UI contains actions for Create, Read, 1 1 1 1
Observe, Individual UI contains actions for Update, Delete (above requirement) 1 1 1 1
Individual code quality, review and observe comments in every function, class, or method reviewed. 0 0 0 0
BE review, observe if Individual API handles error conditions (ie duplicate user id) 1 1 1 1
BE review, observe if Individual API contains GET and POST methods 1 1 1 1
BE review, observe that Individual code contains database operations that support Create, Read 1 1 1 1
BE review, observe that Individual code contains database operations that support Update, Delete (above requirement) 0 0 0 0

Grade Average: 7

1908901 commented 1 year ago

Presentation

Fluffy Friend Finder Presentation

Runtime Links

Flask Deployed Frontend Website

Technological Achievements

Prior to this trimester, my familiarity with the SQLAlchemy Database Library was limited and I had no prior experience using it. However, my extensive use of it throughout my project has enabled me to become proficient in dynamically creating, reading, updating, and deleting entries within a database table. Although I faced initial difficulties in programming GET and POST requests for my feature, I am grateful for these challenges as they have provided me with a deeper understanding of the library and its functionalities. I can now confidently implement it in my current and future projects, which will allow me to create a dynamically updating database on the front end using GET and POST requests.

Furthermore, I have achieved proficiency in utilizing JavaScript and Fetch, which is a significant accomplishment for me. Prior to starting the project, I had a basic understanding of both frontend and backend development but lacked the knowledge of how to effectively link them together to create a functional project. Through learning about JavaScript, Fetch, and their purposes, I was able to connect the frontend and backend Flask server in my feature. This newfound knowledge was critical in programming and allowed me to add the finishing touches to my feature. As a result, I can now apply this valuable knowledge to future full-stack projects.

The database I used for GET and POST methods. Specifically the part of my feature that searches for a certain user/dog name and GETs their lifespan and temperaments.

Screen Shot 2023-02-27 at 11 43 34 PM

API with garbage checking and endpoints

Screen Shot 2023-02-27 at 11 46 21 PM Screen Shot 2023-02-27 at 11 47 10 PM

Guides for Review

Tips and reminders for frontend Tips and reminders for GET and POST methods and fetching from the backend

Video

For the first part of my feature, the video does not record the part where I am typing the symptoms because the question shows pops up but doesn't show when screen recording, but the feature works completely.

Screen Shot 2023-02-28 at 12 19 06 AM

Link

Github Analytics

Team Team Fastpages

Screen Shot 2023-02-27 at 11 57 23 PM

Team Team Flask

Screen Shot 2023-02-27 at 11 57 53 PM

Bonus: Errors and Solutions

The error that I had the most problems with was fetching my API from the backend, as well as developing POST and GET methods. I spent lots of time developing the python code for my feature where the user would input a symptom and in return would have a potential diagnosis of their pet. However, the code was still not running properly in the front end and it delayed most of the tasks I wanted to complete during the past weeks. However, after asking questions and spending more time with the broken code, was able to create properly running code that would return a specific disease to the user. There were errors in my HTML and CSS files that were preventing my feature from working smoothly. I was also having errors with my API as I could not figure out how to fetch it from the backend. However, I fixed this by spending more time and researching past lessons that explained how to properly link the backend to the front and I was successfully able to fetch.

1908901 commented 1 year ago

CB Grading

Reporting Category Student Score Peer Score Comments
Program Purpose and Function 1 1 The response earned the point for this row, demonstrating the running of the program, and showing input into the program.
Data Abstraction 1 1 I believe that the code had shown how the data was used efficiently and meets all the requirements
Managing Complexity 1 1 The feature showed different aspects like using an API, dictionary and GET and POST methods.
Procedural Abstraction 0 0 There is no series or steps throughout the procedure, and the user is not required to follow an order.
Algorithm Implementation 0 0 No specific Algorithm was used for the program, simplified process.
Testing 1 1 The testing did meet all the requirements

Score 4/6

1908901 commented 1 year ago
requirment self-grade Ishi Lina
Review Ticket / Presentation .5 .5 .5
Runtime Links .5 .5 .5
Technical Achievements, backend focus .5 .5 .5
Guides for Review (include Blog) .5 .5 .5
Video .5 .5 .5
GitHub analytics .5 .5 .5
Bonus, substitute and personal achievement .5 .5 .5

Average Grade: 3.5

1908901 commented 1 year ago

CB Response

Program Purpose and Function: The purpose of my feature is a pet diagnosis. One part of my feature is where the user inputs a concerning symptom that their pet has and the program will return with the appropriate diagnosis based on that symptom. Another part of my feature uses an API so that the user can look up a certain dog breed and receive their temperaments and lifespan. This allows the user to learn more about the dog they are interested in and if their dog's symptoms are due to old age. The last part of my feature uses GET and POST methods by using the user class we made for our project. This allows the user to input any of the dog's names on our website and the program will return that specific dog's health condition. Overall, my feature allows the user to learn more about the logistics of adopting a pet from our website.

Screen Shot 2023-02-28 at 1 06 00 AM

Data Abstraction: Using the User list that our team made for our project, the last part of my feature is able to search through the list of users and return their health conditions based on the database. This makes my feature more personal to our project since it is GETting from our specific user class from the backend.

Screen Shot 2023-02-28 at 1 07 12 AM

Managing Complexity: The program receives input from the user regarding the attributes of a dog, and then the create_user function is used to include a new row and user in the database. This process helps improve efficiency since it eliminates the need to manually add new dogs to the database every time. Instead, we can simply add them directly from the UI, which is a simpler and more streamlined approach.

Screen Shot 2023-02-28 at 1 08 49 AM

Procedural Abstraction: This piece of code allows the user to input dog attributes, and the function called "create_user" adds a new row and user to our database. This function helps improve our efficiency because it eliminates the need to manually add each new dog to the database. Instead, we can simply input the information directly from the user interface, which is much simpler.

Screen Shot 2023-02-28 at 12 48 03 AM

Algorithm Implementation:

The code uses a for loop to iterate over the user-provided data and add it to the system, excluding any duplicate or invalid information. The loop is set to run for 20 iterations, creating a new user if all the necessary input fields are filled in. If any required fields are missing, the code will generate an error. This particular piece of code is written in JavaScript and utilizes an if statement to determine whether all input fields have been filled in before creating a new row in the system. The user's data is stored in a dictionary called myData, which is then used to update the system's database with the new information.

Screen Shot 2023-02-28 at 1 10 14 AM

Testing: Call one: user inputs the symptom and the program returns with the appropriate diagnosis Call two: user inputs breed and the program returns with the appropriate lifespan and temperament based on our user class Call three: user inputs the dog name and the program Gets from the user class and returns with the specific dog's health conditions.