Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Animal_Safeguard_-_CS_373_Presentation.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

 Animal_Safeguard_-_CS_373_Presentation.pdf

Avatar for Animal Safeguard

Animal Safeguard

July 15, 2020

Other Decks in Programming

Transcript

  1. Our Purpose Raise Awareness on Endangered Species Encourage Individuals to

    Take Action in their Own Backyard Hold Countries Accountable for their Conservation Efforts to Protect Animals & Ecosystems
  2. Each Team Member’s Contribution Carrie Lu: GUI development with Bootstrap

    and React Aya Abdelgawad: GUI development; Implementing search functionality Jorge Garza: Backend; Database management; Implementing API Zachary King: Backend; Database management; Implementing API Shashank Bhavimane: GUI development; Creating visualizations
  3. Each Team Member’s Stats Carrie Lu: Commits: 88 Issues: 10

    Unit Tests: 0 Aya Abdelgawad: Commits: 91 Issues: 16 Unit Tests: 0 Jorge Garza: Commits: 45 Issues: 19 Unit Tests: 4 Zachary King: Commits: 0 Issues: 18 Unit Tests: 5 Shashank Bhavimane: Commits: 87 Issues: 15 Unit Tests: 0
  4. Data Sources • NatureServe API - details on ecosystems &

    habitats • Bloowatch API - most well-known instances of endangered species globally • Country API - general information pertaining to the countries of the world • World Bank Country API - income classification on countries of interest • Animal Protection Index - ratings and evaluation on conservation efforts and animal welfare policies on certain countries
  5. Front End Development Processes • Split up work by models

    ◦ Allowed for different solutions to problems and enabled us to choose which we thought was the best option to put on the final product • Effective communication ◦ Ensure new updates for a single model are implemented for the rest of them ▪ Major Example: Individual pages • Worked together to implement this feature for one model and then split up to implement them for our respective model ◦ Ask about design changes, standardize looks across all pages, and consult for advice or help
  6. Front End Development Tools • React and JavaScript - Used

    to build the backbone of our website app and incorporate all required elements • Bootstrap Cover Template - Used to improve style to the visual elements of our webpages • Material UI - Used for tables and sorting table attributes • NPM Libraries - Used to visualize Group 6’s API data
  7. Front End Development Problems • Switching from static HTML to

    React pages ◦ No team members had React experience, so this took significant trial and error ◦ Routing between different pages was less intuitive than static HTML pages ▪ We used a HashRouter to change the page to display the information we want • Sorting Tables ◦ Implemented sorting through the backend API ▪ Decided to instead use MaterialUI’s sorted table templates • Individual pages for table entries not displaying ◦ Originally tried to use tokens to pass in the desired entry name ◦ Switched to using the window’s URL • Linking between models ◦ API call was not fulfilled when page is first rendered, causing data on page to be null ▪ Issue fixed by checking if data existed, before trying to display anything
  8. Our Development Approach Divide and Conquer - split the team

    up into 3 members on the front end and two members on the back end Communication - send updates frequently and ask for help from team members when needed Pair Programming - share screen and have both team members work collaboratively
  9. Personal Critique: What went well? • Using personal strengths to

    assign tasks - individual member’s used their backgrounds and experiences to volunteer to do tasks they knew how to do well • Asking for help - we used a pair programming approach to brainstorm solutions to the problems we encountered • Designing the API - we used the API to do most of the heavy lifting with the data so the front end received the data in the format it needed • Utilizing React components to render information - by incorporating existing React components, we could display the data in a tabular or visual form beautifully and easily
  10. Personal Critique: How can we improve and what still vexes

    us? • Switching to Functional React - investigate the difference between class and functional components in React and find out which is best • Improving the Exchange of Data between Flask and React - this was a main pain point during our web development process
  11. Critique of Group 6 How did they do? What did

    we learn from their project? What don’t we understand?
  12. API was difficult to work with • Accessing the API

    with the Fetch method would result in a “Access to fetch has been blocked by CORS policy” error • Using the fetch method’s no-cors mode and Access-Control-Allow-Origin header allowed access to the API, but created an opaque response, which caused the API’s data to not populate in our local list • Downloading the JSON files from the API allowed us to use those local files for data, rather than calling the actual API. • The data stored in the API itself was easy to use and intuitive, but the problem was with having access to fetch that data with a get request.