Code Monkey home page Code Monkey logo

v48-tier2-team-12's Introduction

Dinopedia

Logo Overview

Dinopedia is a responsive mobile application and website designed to compile fascinating facts about dinosaurs sourced from the collections of London's Natural History Museum. It aims to present this wealth of information in an engaging and interactive manner, in a way that tickles everyone's curiosity and sense of wonder.

This application was developed as a learning project for Chingu Voyage 48. It retrieves information about dinosaurs through the Chingu Dinosaurs API.

Preview

Preview

Logo Features

  1. Dinosaur Display:
  • Displays dinosaurs' name, weight, length, country, diet, and corresponding images sourced from the provided API data.
  • Each dinosaur card is clickable to view full details.
  1. Dinosaur Search:
  • Search, filter, and sort feature allows users to search for dinosaurs by name, weight, length, country, and diet.
  • Search functionality should be case-insensitive and allow partial matching of dinosaur names.
  1. Charts:
  • The Charts page displays two charts showing the distribution of dinosaur diet and type data. Users can filter the data using provided categories.
  1. Responsiveness: The application is responsive across various devices and screen sizes.

  2. Display news about recent dinosaur discovery:

  • The app uses the GNews API to feature recent discoveries in paleontology.
  1. Map with dinosaurs findings location:
  • On each dinosaur details page the app incorporates an interactive map feature highlighting locations where dinosaur fossils have been discovered.
  1. Dinosaur of the day section:
  • Includes a section in home page highlighting a specific dinosaur each day.
  • Fun and interesting facts are displayed as users navigate through pages other than the home page.

Logo Running the project

Live site

Dinopedia

From the repo:

  1. Clone this project locally
  2. Run npm install in your bash/command line
  3. Run npm run dev in your bash/command line

Logo Dependencies:

  • @babel/runtime (^7.24.1)
  • chart.js (^4.4.2)
  • chartjs-plugin-datalabels (^2.2.0)
  • react (^18.2.0)
  • react-chartjs-2 (^5.2.0)
  • react-dom (^18.2.0)
  • react-loader-spinner (^6.1.6)
  • react-router-dom (^6.22.3)
  • react-slider (^2.0.6)

Logo DevDependencies:

  • react (^18.2.64)
  • react-dom (^18.2.21)
  • react-slider (^1.3.6)
  • typescript (^5.2.2)
  • vite (^5.1.6)

Logo Team Decision Log and consultable useful resources

A list of helpful documents, tutorials and links that made the structure of this code rich and well organized:
Log of Team Decisions and Accessible and valuable resources

Logo Contributors

UI/UX Designers:

  • Amina Hargitai
  • Karl Gosas

Web Developers (and their repos):

v48-tier2-team-12's People

Contributors

bulascoskun avatar carlos-morais avatar cris-valente avatar dawooddilawar avatar hudamabkhoot avatar jdmedlock avatar morais-c avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

v48-tier2-team-12's Issues

React SPA Project Structure

User Story Description

As a User
I want to start a SPA with a Home Page
So I can view suggestions and navigate to the other pages

Related with Epic 01 - #40

Home Page

Display Home Page

As a User
I want to start with a Home Page
So I can view suggestions and navigate to the other pages

Steps to Follow (optional)

Additional Considerations

  • This will be the Home Page
  • First version should be Mobile oriented (Following the Mobile First decision)

Epic#2 - Dinosaur Display

Feature Description
Display dinosaurs' name, weight, length, country, diet and corresponding images sourced from the provided API data.
Each dinosaur entry should be clickable to view full details.

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

CategoryTiles Component - Each child in a list should have a unique "key" prop.

Describe the problem
An error on console, on homepage:
Each child in a list should have a unique "key" prop.
Check the render method of CategoryTiles.

To Reproduce
Steps to reproduce the behavior:

  1. Refresh homepage
  2. Open devtools / console

Additional Information
Same problem reported on DinoCardGrid.
Used:
key={index}

Can this be used here?

Create DinoCard component

Task Description
Create DinoCard component

JSON data: {
"id": 1,
"name": "Aardonyx",
"imageSrc": "https://www.nhm.ac.uk/resources/nature-online/life/dinosaurs/dinosaur-directory/images/reconstruction/small/aardonyx.jpg",
"typeOfDinosaur": "prosauropod",
"length": 8,
"weight": "N/A",
"diet": "herbivorous",
"whenLived": "Early Jurassic, 199-189 million years ago",
"foundIn": "South Africa",
"taxonomy": "Dinosauria, Saurischia, Sauropodomorpha, Prosauropoda, Anchisauria",
"namedBy": "Yates, Bonnan, Neveling, Chinsamy and Blackbeard 2010 (2009)",
"typeSpecies": "celestae",
"description": "Aardonyx is known from 2 immature individuals. Adults would have been much larger, probably over 10m.Aardonyx would have been largely bipedal (walking on 2 legs) but also capable of walking on all 4 legs. This and its way of feeding are transitional features between those of basal sauropodomorphs and the more derived sauropods (large dinosaurs that walked on all fours) that came later."
},

Epic#12 - Dinosaur of the day section

Feature Description
Dinosaur of the day section (To be further discussed)

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Create BottomBar component

Task Description
Create BottomBar component

Technical Considerations
Current location is highlighted in green to show the user where they are

Epic#7 - Dark mode

Feature Description
Select one of two themes:

  • Dark
  • Light

ToDo:
Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

News Component

Task Description
Using News API

Technical Considerations
Newsapi.org - this is limited to local host - look for an alternative

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Add Container for Discover

Task Description
Home Page - Add Container for Discover

Technical Considerations
Use React Components?

Additional Considerations
NA

User Story: #32

Add Container for Dinosaur of the day

Task Description
On Home Page
Add Container for Dinosaur of the day

Technical Considerations
Can be a React Component?

Additional Considerations
NA

User Story: #32

Step 6: 📝 Create a Low-fidelity wireframe

Objective

Establish a common understanding across the team of what information is in each screen and the actions that may be invoked from each screen.

How

  • Using the features you added to the the Feature Planning template in step 4 identify the screens you’ll need and the information on each one.
  • Map the actions users will be able to perform from each screen and the navigation from screen-to-screen
  • Create a low-fidelity wireframe using a tool like [Figma](https://www.figma.com/) or even pencil and paper.

Resources

How To Wireframe A Website in 3 Easy Steps
Create a low fidelity wireframe (Chingu Handbook)

Member of Epic: #16

Create Pages and Set Up Routes in the React SPA

Task Description
Create Pages and Set Up Routes in a React

Add react-router-dom to the project
Define the Routes

Question:
Should it be created a new file called Routes.js in the root folder in your React app?
Separating routes in their own file, is it a good practice?

Technical Considerations
NA
Additional Considerations
NA

Epic#4 - Charts

Feature Description
Display two charts (pie chart and doughnut chart) illustrating the distribution of general dinosaur diet and type data.

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Epic#5 - Responsiveness Implement tablet and desktop view

Feature Description
When app is accessed on different devices (Phone, Tablet, Desktop) Web UI must scale well:
The dynamic elements must be loaded correctly
The images must be displayed right

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Epic#11 - Color Blind Design

Feature Description
Color Blind Design (To be further discussed)

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Step 3: 👍 Choose a project & create a Vision Statement

Task Description
Tier 1 & Tier 2 teams will be assigned a project. Tier 3 teams have the choice of creating a project from specifications provided by Chingu or choosing your own project. Check your team channel for more information on which project you are asked to complete.

For Tier 3 teams who choose to create their own project:

  • Watch the How to Select a Voyage Project video
    video link
  • Collect ideas from the team
  • Brainstorm with your team
  • Vote to select one idea
  • Decide on the technical stack you’ll use to build your project

Technical Considerations
N/a

Additional Considerations
Use the Project Vision and Feature Planning template to gather & vote on everyone's idea

Resources
Choose a Project & create a Vision Statement (Chingu Handbook)

Member of Epic: #16

Step 7: ⚙️ Set Up a Team Workflow

Task Description

  • Decide on the coding standards the team must follow.
  • Define the characteristics of your repo including the number of branches, branch names, & the workflow everyone must follow.
  • Agree on the format of commit messages, how Pull Requests will be reviewed, and GitHub branch protection rules.
  • Decide on where you’ll deploy your app and the branch to be considered as ‘production’ you’ll be deploying from.
  • Decide on what meetings you’ll need each week and to save time, schedule them as recurring meetings. You might want to look ahead to Reaching your MVP to learn more about the types of meetings you’ll need.

Technical Considerations
N/a

Additional Considerations
Setup Your Team Workflow (Chingu Handbook)
Javascript Style Guides
Defining a Git Workflow (Chingu Handbook)
Git Branches (Chingu Handbook)
Git Pull Requests (Chingu Handbook)

Member of Epic: #16

Epic#10 - Interactive Quiz

Feature Description
Interactive Quiz (To be further discussed)

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Filter Pane - CSS

Task Description
Create the page only - not behavior

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Step 5: 📋 Create a Project Backlog

Task Description

  • Watch the How to Create a Project Backlog video
    video link
  • Identify & prioritize features
  • Create an epic for each feature
  • Choose the highest priority epics & divide them into user stories
  • Add your epics & user stories to a backlog tool. You may use any project management tool your team prefers. For example, Jira, Miro, Zenhub, GitHub Projects, etc.
  • Prioritize the user stories

Technical Considerations
N/a

Additional Considerations
During the Voyage you’ll refine the Project Backlog and in every Sprint you’ll move tasks from it to the Sprint Backlog. This is part of the Agile process helps you and your team concentrate only on the tasks that must be completed in that Sprint.

If you are using ZenHub don't forget you'll need to install its browser extension before you can see the ZenHub tab in your GitHub repo.

Resources
Create a Project Backlog (Chingu Handbook)

Member of Epic: #16

Epic#9 - Interactive map

Feature Description
Interactive map with dinosaurs location

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Create Subfolders on /src for Pages, Components and Utils

Task Description
Create subfolders on /src:

  • /src/pages: contains a new file for each page required for the app.
  • /src/components: Components reused across multiple functionalities or features.
  • /src/utils: - General utility functions serving various features.

Technical Considerations
NA
Additional Considerations
Related with US #41

Getting Started: 🙋 Do you have questions about Chingu or the Voyage process?

Task Description
If you have questions about Chingu or the Voyage process join one or both of the Chingu Roundtable sessions held every:

  • Wednesday @ 2:00 p.m. GMT -6 (Chicago)
  • Saturday @9:00 a.m. GMT -6 (Chicago)

These sessions give you the opportunity to ask your questions in real time with a member of the Chingu team

Technical Considerations
These are held in our Discord community in the #townhall-chat & #townhall-voice channels.

Additional Considerations
You may also ask questions anytime in the #admin-feedback channel in Discord or by opening a support ticket in the #open-support-ticket channel.

Member of Epic: #15

Getting Started: 🤔 Start thinking about project ideas & the technical stack

Task Description

  • Check out apps that Voyage teams have created in prior Voyage by reviewing the Project Showcase
  • Come up with 1 to 3 ideas for projects you'd like to build so you can discuss them with the rest of the team when the Voyage starts.
  • Think about what technical stack you'd like to use to build that app. Similarly, you'll discuss this as a team at the start of the Voyage.

Technical Considerations
N/a

Additional Considerations
N/a

Resources
Choose a project & create a Vision Statement (Chingu Handbook)

Member of Epic: #15

Epic#01 - Generic Issues (SPA, Deploy, Docs)

TBD

Feature Description
Describe what the feature is intended to accomplish & why it's important

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Chart Page - Create the UI Design

Task Description
Describe the task to be completed.

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Step 1: 🤝 Meet your team & schedule Kickoff meeting

Task Description

  • Meet your team by adding your introduction to the Team Channel
  • Start getting to know one another
  • Start discussing what projects you would like to create
  • Watch the Voyage Team Roles video to learn about the different roles members of your team may have signed up to fill.
    video link
  • Watch the How to Select a Voyage Project video
    video link

Technical Considerations
N/a

Additional Considerations
Meet Your team (Chingu Handbook)

Use When2Meet to identify days & times when everyone on the team is available to meet.

Member of Epic: #16

Epic#8 - Children Mode

Feature Description
Children Mode

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Epic#3 - Dinosaur Search

Feature Description
Search, filter and sort feature allowing users to search for dinosaurs by name, weight, length, country and diet.
Search functionality should be case-insensitive and allow partial matching of dinosaur names.

ToDo:

Major User Stories/tasks

  • User Story or Task #1
  • User Story or Task #2
  • Additional User Stories or Tasks as necessary

Additional Considerations
Include anything else that may be helpful. For example, links to external resources.

Step 4: 📤 Define & prioritize MVP features

Task Description

  • Each team member should add their ideas to the Project Vision & Feature Planning template before the team meeting
  • Prioritize each feature - Must Have, Should Have, Nice to Have
  • Meet with the team to review each feature & refine priorities

Technical Considerations
N/a

Additional Considerations
All Must Have tasks will make up your MVP. Make sure that you control the scope of the project by limiting the number of Must Have features to the ones you can reasonably complete by the end of Sprint 6.

Remember that you can always add new features once you complete the MVP.

Resources
Choose a Project & create a Vision Statement (Chingu Handbook)
Define & Prioritize MVP features (Chingu Handbook)

Member of Epic: #16

Add Filter button

Task Description
Add Filter button to Home Page

Technical Considerations
NA
Additional Considerations
NA

User Story: #32

Add Search input

Task Description
Home Page - Add Search input

Technical Considerations
NA

Additional Considerations
NA

User Story: #32

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.