Giter Club home page Giter Club logo

stretch-tech's Introduction

🦭 Speckle

Built With:
Testing Technologies:

Abstract:

Quick! Help Speckle catch some fish with your spelling prowess!!! Speckle is a novel children's game aimed at supporting spelling proficiency. In this application, children will be able to listen to a word and then try spelling it on their own. If they get it right, Speckle will catch one fish and be one step closer to a full belly. If they don't quite get it right, they'll be shown what letters were slightly off.

Preview:

Start Page Screenshot 2023-11-07 at 11 59 09 AM

Game Play Screenshot 2023-11-03 at 1 26 39 PM

End Screen Screenshot 2023-11-07 at 11 59 29 AM

Contributors:

Context:

This is a group project during Mod 3 at Turing School of Software & Design. We were given approximately 1 week to create this project from scratch using the provided comp.

Learning Goals:

  • Learn and implement a completely new technology - Redux
  • Gain competency with React fundamentals
  • Test React components & asynchronous JS
  • Practice refactoring
  • Create a multi-page UX using Router
  • Learn to deploy an application

Challenges:

  • Redux: This was our first time learning about as well as implementing Redux. While our application was relatively small it gave us a good opportunity to experiment and learn about the power that Redux offers to manage global state.
  • React: This was our collective second React Application. We enjoyed continuing to learn about the features, functionality, and requirements for implementation within this library/framework.

Installation Instructions:

  1. Fork this repository.
  2. Clone it to your local machine using the green <> CODE button and paste that into your terminal with the command: git clone <paste here>
  3. Run the command: cd Stretch-tech
  4. Run the command: npm install
  5. Run the command: npm start
  6. The application will open in your browser

Ideas for future iterations

  • Add grade-level options for words
  • Add a page where misspelled words go or some sort of word bank for later practice
  • Login for teachers and giving them the ability to create their own list of words
  • Functionality for autofocus on the submit button after all letters are entered and using backspace to go back a letter box

stretch-tech's People

Contributors

loganpaulmatheny avatar nicolerue avatar jnguyen615 avatar jenziel avatar

Stargazers

 avatar  avatar

Watchers

 avatar

stretch-tech's Issues

Equity Analysis

Description: Fill out equity analysis form

Tasks:

  • fill out form

Acceptance Critera:

  • form reviewed by all team members
  • form submitted

Design Inspiration Document

Description: Create a document with design inspirations including but not limited to style layouts, fonts and color schemes.

Tasks:

  • get inspiration ideas
  • build out a mock idea for the app

Acceptance Criteria:

  • 3 inspirations
  • a basic mock layout for the app

reducer function to connect api and data

  • Find way to reference what is currently held in state
  • useDispatch in App() to set state once the API calls have completed made

Acceptance Criteria:

  • Words from API call are visible on the screen rather than standard hello-goodbye

Test: Userflow #3

Tasks:

  • Load up the app and navigate to the game screen
  • Test the happy path and ensure it goes to the next word
  • It should not move to if any of the letters are wrong and should showcase a message

Acceptance Criteria:
As a user…when I submit my word, it will move onto the next word if correct or show me my errors if incorrect

Logic - Letter

Questions:

  • Do you need to pass a parameter of letter inputs so that state updates appropriately?
  • What is update.js doing?

Tasks:

  • Determine if there should be a true or false in state
  • Change general structure of state of letters
  • Create function for checking if letter is correct
  • Create function checking if whole word is correct
  • Change word.update reducer to take in true or false
  • Fix all the bugs...
  • Test

Acceptance Criteria:

  • Each letter is being given a status of true or false
  • When all the letters are right, a new word with the appropriate number of boxes is rendered

Test: Userflow #2

As a user…I can see what number question I'm currently on. I can listen to the word and try spelling the word in the boxes provided.

Extension: Add backspace functionality on the GamePage.

Acceptance Criteria:
As a user, I can type my response into the LetterInputs. If I make a typo, I can use the backspace button to go back to the previous input. I can hit backspace again to delete my previous entry. I can type a letter and continue playing as usual.

Research:
This seems like it will involve working with the focus logic Jen N added in LetterInputs.js.

Test: UserFlow #1

  • Specle
  • Start Button
  • Fish

Acceptance Criteria:
As a user…I can see a welcome screen before the game starts.

Feature - button focus after a letter has been pressed

Description: get the buttons to focus on the next one after one input has already been filled

Tasks:

  • research how to do this - .focus ()
  • probably need a function of some kind to handle the handle the change
  • might need a keyup/keydown

Acceptance Criteria:
After typing a letter into the input field it should automatically go to the next input field

DTR

Description: Collaborate on expectations for DTR

Tasks:
-[ ] fill out and discuss DTR template

Acceptance Criteria:

  • all members agree to fully commit to DTR requirements

Extension: setTimeout Questions

When and how should we implement a set timeout function?

Nicole and Jen Z explored how to briefly display encouraging messages like 'Amazing!' when a user gets a question right.
We are still trying to conceptualize conditionally rendering these messages but only within the 5 seconds that a setTimeout() function runs. It would appear in the same location that the .feedback-message appears within LetterInputs.js

Image

Feature - Audio file on page

Task:

  • Research how to embeds for audio files in a react project
  • Update the words held in state with goodbye and their audiofiles
  • In the audioplayer component use the useSelector() hook to get whatever audiofile is currently active in state
  • Dynamically set the src of the audio component to EITHER open the audio file in a separate page OR play it on our page (preferable)

Acceptance Criteria:

  • Is the audio file embedded and clickable on the page

Extension: Hitting the return key allows a user to submit their typed response

Acceptance Criteria:
As a user I can type out my answer. When I hit enter while focused on the last box, I can submit my answer and see if it was correct.

As a user I am given some visual cues so that I know I can use the return button to submit my answer.
(Maybe on the homepage, an instructions page,or the Game Page)

Research:
This item will likely work with the focus logic Jen N added into LetterInputs.js.

Wireframe

Description: Create wireframe

Tasks:

  • make wireframe
  • make inspiration and idea board

Acceptance Criteria:

  • well thought out and detailed wireframe showing structure and connection of files
  • design inspiration and idea board

Style - Integrate accessibility

Tasks:

  • - add responsive design
  • - get a good score on lighthouse ( Let's aim for 100! )

Acceptance Criteria:

  • As a user if I don't have access to a computer, the game is legible on my mobile device.
  • As a user I can listen to the alt text descriptions to get a sense for what the imagery looks like.
  • As a user I can tab through the app without needing to use a mouse.
  • As a user if I'm color blind I can easily see everything on the page.

Build Basic HTML/CSS components

Description: Build basic HTML components needed

Tasks:

  • basic html and css components for all pages set up
  • Follow figma inspiration document

Acceptance Criteria:

  • Basic html and css components for all pages

API Calls

Tasks:

  • [ ]

Acceptance Criteria:

  • [ ]

Styling - Confirm Design

Solidify styling. Revisit our design inspo and agree on a general scheme tomorrow Sunday(?)

Tasks:

  • [ ]

Acceptance Criteria:

  • [ ]

Test: Error Handling

Acceptance Criteria:
for Get requests
As a user I can see an error message when...
[ ] there is a 404 error for a bad route.
[ ] there is a 429 error for too many requests to the server.
[ ] there is a 500-level error for a server error

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.