Giter Club home page Giter Club logo

articulate's Introduction

ARTICULATE.

A solo final project by Michann Stoner. Original project spec can be found here.

Table of Contents

Description

Maybe you aren't feeling confident in your lexicon, maybe you're trying to tighten up that resume to sound ✨extra✨ professional, or maybe you just love words! ARTICULATE. is a word search application, where users can search for a word to see its definition, pronunciation, synonyms, or see it used in an example. Users can also add a word to their favorites, and view the favorites section to be able to come back to a word.

See it in action here!

Main Page

Favorites

Mobile / Responsive

Accessibility Audit

Screen Shot 2021-06-14 at 9 38 15 AM

Setup

  • From your terminal, git clone this repository
  • cd into the project directory
  • Run $npm install to install dependencies
  • Run $npm start
  • Your default browser should automatically open ARTICULATE.

OR

  • View deployed application here

Running Tests

  • Once in project directory, run npx cypress open
  • In the integration directory, click on the file you'd like to see the testing for
  • A Cypress window should open
  • Tests should run automatically

Technologies

React JavaScript HTML5 CSS3 Cypress.io

Planning

Reflections

Project Evolution

I was so excited to get started on this project. Initially, I struggled coming up with a "niche" enough topic, where I could get pretty specific about my users. But once I found the words API, I knew I was going to have fun with it! I built out my wireframe after finding some inspiration, and completed my project board on day one. I worked through the basics of the component structure fairly quickly, but hit a few snags with how information was coming in from the API with certain words. I spent some time analyzing the data, forming some plans, and then continued to work. I used my project board to guage how long my remaining tasks would take, and ended up completing styling and functionality before moving on to Cypress testing. All in all, I feel like I stayed on track and wrapped the project up right in the amount of time I had expected.

Wins

I'd say some wins for this project would be how quickly the data came through to be displayed on the DOM. It's been fun to observe my own progress with building React applications from scratch. Five weeks ago it was a little fuzzy and pretty slow-moving. I also really enjoyed styling this project a lot.

Challenges

A challenge I encountered on this project was dealing with the data from a public API. I had to fetch my data for each search query, rather than being able to fetch all of it in componentDidMount and storing it in state, then iterating through it to find a word match. Because of that, error handling and navigation was a little different than what I've done in previous projects. Also, I found the data to be somewhat inconsistent - where some words have synonyms/examples/pronunciation, etc. and others did not, so I had to get creative with how to take care of those inconsistencies.

Future Project Plans

  • Have more information in the favorites section - be able to click a word and view the details again
  • An option to randomize words!
  • Setting up local storage so that favorited words persist on page reload
  • An audio clip of the word pronunciation
  • More definition options

articulate's People

Contributors

michannstoner avatar

Watchers

 avatar

articulate's Issues

error handling

  • in fetch requests
  • if a word doesn't meet search criteria
  • if there are no favorites

component - word info

create component that holds the word, definition, synonyms, and example to display

component - favorites

create component for when a user favorites a word - should display a list of favorited words

refactor/cleanup

  • spacing/indentations
  • DRY code
  • remove unused files/lines of code
  • remove console.log()

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.