gatsby frontend to display all ideas/projects with a page for each tier of app idea/project

pull/135/head
mcacciano 6 years ago
parent bd4684f148
commit b1cdc1e141

@ -1,3 +1,9 @@
---
path: '/bin2dec'
title: 'Bin2Dec'
tier: 'beginner'
---
# Bin2Dec # Bin2Dec
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/border-radius-previewer'
title: 'Border-radius Previewer'
tier: 'beginner'
---
# Border-radius Previewer # Border-radius Previewer
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/csv-2-json'
title: 'CSV2JSON'
tier: 'beginner'
---
# CSV2JSON # CSV2JSON
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -12,7 +18,7 @@ that's already present. In additional to providing a useful function, this
challenge will also give you practice in modifying existing applications to challenge will also give you practice in modifying existing applications to
add new functionality. add new functionality.
### Constraints ### ### Constraints
- Read the user stories below carefully. Some of the functionality created - Read the user stories below carefully. Some of the functionality created
for JSON2CSV will need to be modified. for JSON2CSV will need to be modified.
@ -28,6 +34,7 @@ conversion.
- [ ] User can see the converted CSV in the JSON text box - [ ] User can see the converted CSV in the JSON text box
### Stories already implemented in JSON2CSV ### Stories already implemented in JSON2CSV
- [ ] User can paste JSON syntax into a text box - [ ] User can paste JSON syntax into a text box
- [ ] User can click a 'Convert to CSV' button to validate the JSON text box and convert it to CSV - [ ] User can click a 'Convert to CSV' button to validate the JSON text box and convert it to CSV
- [ ] User can see an warning message if the JSON text box is empty or if it doesn't contain valid JSON - [ ] User can see an warning message if the JSON text box is empty or if it doesn't contain valid JSON

@ -1,3 +1,9 @@
---
path: '/calculator'
title: 'Calculator'
tier: 'beginner'
---
# Calculator # Calculator
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -26,9 +32,8 @@ button (for clear all).
digits in the entry pad. Entry of any digits more than 8 will be ignored. digits in the entry pad. Entry of any digits more than 8 will be ignored.
- [ ] User can click on an operation button to display the result of that - [ ] User can click on an operation button to display the result of that
operation on: operation on:
* the result of the preceding operation and the last number entered OR _ the result of the preceding operation and the last number entered OR
* the last two numbers entered OR _ the last two numbers entered OR \* the last number entered
* the last number entered
- [ ] User can click the 'C' button to clear the last number or the last - [ ] User can click the 'C' button to clear the last number or the last
operation. If the users last entry was an operation the display will be operation. If the users last entry was an operation the display will be
updated to the value that preceded it. updated to the value that preceded it.

@ -1,3 +1,9 @@
---
path: '/my-calendar'
title: 'My Calendar'
tier: 'beginner'
---
# My calendar # My calendar
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/cause-effect'
title: 'CauseEffect'
tier: 'beginner'
---
# CauseEffect # CauseEffect
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/christmas-lights'
title: 'Christmas Lights'
tier: 'beginner'
---
# Christmas Lights # Christmas Lights
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/color-cycle'
title: 'ColorCycle'
tier: 'beginner'
---
# ColorCycle # ColorCycle
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/countdown-timer'
title: 'Countdown Timer'
tier: 'beginner'
---
# Countdown Timer # Countdown Timer
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/dollars-to-cents'
title: 'Dollars To Cents'
tier: 'beginner'
---
# Dollars To Cents # Dollars To Cents
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -7,7 +13,7 @@ Your task is to let the user input a dollar value (float), assuming that it can
The challenge: Try this without using any frameworks. The challenge: Try this without using any frameworks.
(EX. If you have $0.58, I would have 4 coins: 2 quarters, 0 dimes, 1 nickel and 3 pennies) (EX. If you have \$0.58, I would have 4 coins: 2 quarters, 0 dimes, 1 nickel and 3 pennies)
## User Stories ## User Stories

@ -1,3 +1,9 @@
---
path: '/dynamic-css-variables'
title: 'Dynamic CSS Variables'
tier: 'beginner'
---
# Dynamic CSS Variables # Dynamic CSS Variables
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -41,7 +47,7 @@ when an error is detected.
## Useful links and resources ## Useful links and resources
- [Custom properties (--*): CSS variables (MDN)](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) - [Custom properties (--\*): CSS variables (MDN)](https://developer.mozilla.org/en-US/docs/Web/CSS/--*)
- [CSSStyleDeclaration (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration) - [CSSStyleDeclaration (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration)
## Example projects ## Example projects

@ -1,3 +1,9 @@
---
path: '/your-first-db-app'
title: 'Your First DB App'
tier: 'beginner'
---
# Your First DB App # Your First DB App
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -29,6 +35,7 @@ can test the query logic you'll be adding. You'll be required to hook up
buttons on the web page you build to the `clearDB` and `loadDB` functions, and buttons on the web page you build to the `clearDB` and `loadDB` functions, and
to write your own `queryDB` handler to connect to the `Query DB` button. You'll to write your own `queryDB` handler to connect to the `Query DB` button. You'll
also need to add a `queryAllRows` function to the Customer class. also need to add a `queryAllRows` function to the Customer class.
``` ```
class Customer { class Customer {
constructor(dbName) { constructor(dbName) {
@ -135,7 +142,6 @@ const loadDB = () => {
} }
``` ```
## User Stories ## User Stories
- [ ] User can see a web page containing a control panel containing three - [ ] User can see a web page containing a control panel containing three
@ -187,7 +193,6 @@ for the year.
- In general, what criteria might you use to determine if IndexedDB is right - In general, what criteria might you use to determine if IndexedDB is right
for your app. (Hint: 100% yes or no is not a valid answer). for your app. (Hint: 100% yes or no is not a valid answer).
## Useful links and resources ## Useful links and resources
- [IndexedDB Concepts (MDN)](http://tinyw.in/7TIr) - [IndexedDB Concepts (MDN)](http://tinyw.in/7TIr)

@ -1,3 +1,9 @@
---
path: '/flip-image'
title: 'FlipImage'
tier: 'beginner'
---
# FlipImage # FlipImage
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/github-status'
title: 'Github Status'
tier: 'beginner'
---
# GitHub Status # GitHub Status
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -40,6 +46,7 @@ technique to make it stand out. Use your imagination!
web site page from the command line command `node ghstatus`. You can use this web site page from the command line command `node ghstatus`. You can use this
output to determine which JSON element contain the status information you'll output to determine which JSON element contain the status information you'll
need to develop this app. need to develop this app.
``` ```
ghstatus.js ghstatus.js

@ -1,3 +1,9 @@
---
path: '/hello-app'
title: 'Hello App'
tier: 'beginner'
---
# Hello # Hello
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/iot-mailbox-simulator'
title: 'IOT Mailbox Simulator'
tier: 'beginner'
---
# IOT Mailbox Simulator # IOT Mailbox Simulator
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -18,6 +24,7 @@ process, and to signal the app web page with the state of the mailbox door
(open or closed) at preset intervals. Keep in mind that the interval you specify (open or closed) at preset intervals. Keep in mind that the interval you specify
shouldn't exceed the time it normally takes to open or close the door or you shouldn't exceed the time it normally takes to open or close the door or you
might miss a delivery! might miss a delivery!
``` ```
/** /**
* Monitor the light levels inside an IOT enabled snail mailbox to detect * Monitor the light levels inside an IOT enabled snail mailbox to detect

@ -1,3 +1,9 @@
---
path: '/json-2-csv-app'
title: 'JSON2CSV App'
tier: 'beginner'
---
# JSON2CSV # JSON2CSV
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -12,7 +18,7 @@ The objective of JSON2CSV is to help bridge the gap between JSON and CSV by
converting JSON to CSV to make it easier to review data in a spreadsheet. It converting JSON to CSV to make it easier to review data in a spreadsheet. It
allows the user to paste JSON into a text box to generate its equivalent CSV. allows the user to paste JSON into a text box to generate its equivalent CSV.
### Constraints ### ### Constraints
- You may not use any libraries or packages designed to perform this type of - You may not use any libraries or packages designed to perform this type of
conversion. conversion.

@ -1,12 +1,19 @@
---
path: '/javascript-validation-with-regex'
title: 'Javascript Validation With Regex'
tier: 'beginner'
---
# Javascript Validation With Regex # Javascript Validation With Regex
**Tier:** 1-Beginner **Tier:** 1-Beginner
In this challenge, you'd create a javascript validation script to validate the inputs entered by a user using RegEx. In this challenge, you'd create a javascript validation script to validate the inputs entered by a user using RegEx.
You could always refer to the [Regular Expression Library](http://regexlib.com/(X(1)A(GijS7qxVy-6Gyc4cweUyFoK4ZvRn2WnlOe8SSKuq9sT7ps-2nbiTmZZMTCn_rFk4-mNoGnYL-DPU8pJhmNNOtkP-syqWE4WO_1aVt4bPa5nTsQPQe6VRAALnm6QW3YIWbYkVS78JFbZN39vmMI1UYiWlHXKwNMB99WjsZOn0qc_8dcN0unp2KMOBw0P__3OH0))/CheatSheet.aspx?AspxAutoDetectCookieSupport=1) for support You could always refer to the [Regular Expression Library](<http://regexlib.com/(X(1)A(GijS7qxVy-6Gyc4cweUyFoK4ZvRn2WnlOe8SSKuq9sT7ps-2nbiTmZZMTCn_rFk4-mNoGnYL-DPU8pJhmNNOtkP-syqWE4WO_1aVt4bPa5nTsQPQe6VRAALnm6QW3YIWbYkVS78JFbZN39vmMI1UYiWlHXKwNMB99WjsZOn0qc_8dcN0unp2KMOBw0P__3OH0))/CheatSheet.aspx?AspxAutoDetectCookieSupport=1>) for support
For this project, there'd be three required inputs for validation: For this project, there'd be three required inputs for validation:
- The first would require the user to enter five (5) capital letters, six (6) symbols and two hyphens (-) in any order. This could be used as a password. - The first would require the user to enter five (5) capital letters, six (6) symbols and two hyphens (-) in any order. This could be used as a password.
- The second which could be used as username would require the user to enter letters without spaces - The second which could be used as username would require the user to enter letters without spaces
- The third which could be used as email address would require the user to enter only email addresses on gmail (...@gmail.com). - The third which could be used as email address would require the user to enter only email addresses on gmail (...@gmail.com).

@ -1,3 +1,9 @@
---
path: '/key-value-app'
title: 'Key Value App'
tier: 'beginner'
---
# Key Value # Key Value
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/lorem-ipsum-generator'
title: 'Lorem Ipsum Generator'
tier: 'beginner'
---
# Lorem Ipsum Generator # Lorem Ipsum Generator
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/notes-app'
title: 'Notes App'
tier: 'beginner'
---
# Notes App # Notes App
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/pearson-regression'
title: 'Pearson Regression'
tier: 'beginner'
---
# Pearson Regression # Pearson Regression
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/pomodoro-clock'
title: 'Pomodoro Clock'
tier: 'beginner'
---
# Pomodoro Clock # Pomodoro Clock
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/product-landing-page'
title: 'Product Landing Page'
tier: 'beginner'
---
# Product Landing Page # Product Landing Page
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/quiz-app'
title: 'Quiz App'
tier: 'beginner'
---
# Quiz App # Quiz App
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/random-meal-generator'
title: 'Random Meal Generator'
tier: 'beginner'
---
# Random Meal Generator # Random Meal Generator
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/recipe-app'
title: 'Recipe App'
tier: 'beginner'
---
# Recipe # Recipe
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/roman-to-decimal-numbers-converter'
title: 'Roman to Decimal numbers Converter'
tier: 'beginner'
---
# Roman to Decimal numbers Converter # Roman to Decimal numbers Converter
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/slider-design'
title: 'Slider Design'
tier: 'beginner'
---
# Slider Design # Slider Design
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/stopwatch-app'
title: 'Stopwatch App'
tier: 'beginner'
---
# Stopwatch App # Stopwatch App
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/true-or-false-app'
title: 'TrueOrFalse App'
tier: 'beginner'
---
# TrueOrFalse # TrueOrFalse
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/vigenere-cipher'
title: 'Vigenere Cipher'
tier: 'beginner'
---
# Vigenere Cipher # Vigenere Cipher
**Tier:** 1-Beginner **Tier:** 1-Beginner
@ -24,12 +30,9 @@ Cipher. Libraries are not allowed.
- Developers should design and implement their own solution using only the - Developers should design and implement their own solution using only the
description of the steps in the Vigenere Cipher algorithm. description of the steps in the Vigenere Cipher algorithm.
- After successfully implementing this algorithm Developer should ask - After successfully implementing this algorithm Developer should ask
themselves these questions: themselves these questions: - Would you feel confident encrypting your financial information using the
- Would you feel confident encrypting your financial information using the Vigenere Cipher? Why? - How would you detect that a message had been encrypted using the
Vigenere Cipher? Why? Vigenere Cipher? - How would you go about trying to crack this encryption?
- How would you detect that a message had been encrypted using the
Vigenere Cipher?
- How would you go about trying to crack this encryption?
## User Stories ## User Stories

@ -1,3 +1,9 @@
---
path: '/windchill-app'
title: 'Windchill App'
tier: 'beginner'
---
# Windchill # Windchill
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/word-frequency-app'
title: 'Word Frequency App'
tier: 'beginner'
---
# Word Frequency # Word Frequency
**Tier:** 1-Beginner **Tier:** 1-Beginner

@ -1,3 +1,9 @@
---
path: '/bit-masks-app'
title: 'Bit Masks'
tier: 'intermediate'
---
# Bit Masks # Bit Masks
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/book-finder-app'
title: 'Book Finder App'
tier: 'intermediate'
---
# Book Finder App # Book Finder App
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/card-memory-game'
title: 'Card-Memory-Game'
tier: 'intermediate'
---
# Card-Memory-Game # Card-Memory-Game
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/charity-finder'
title: 'Charity Finder'
tier: 'intermediate'
---
# Charity Finder # Charity Finder
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/chrome-theme-extension'
title: 'Chrome Theme Extension'
tier: 'intermediate'
---
# Chrome Theme Extension # Chrome Theme Extension
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/drawing-app'
title: 'Drawing App'
tier: 'intermediate'
---
# Drawing App # Drawing App
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/emoji-translator-app'
title: 'Emoji Translator App'
tier: 'intermediate'
---
# Emoji Translator # Emoji Translator
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/flash-cards-app'
title: 'FlashCards App'
tier: 'intermediate'
---
# FlashCards # FlashCards
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/flip-art-app'
title: 'Flip Art App'
tier: 'intermediate'
---
# Flip Art # Flip Art
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,8 @@
---
path: '/game-suggestion-app'
title: 'Game Suggestion App'
tier: 'intermediate'
---
# Game suggestion app # Game suggestion app

@ -1,3 +1,9 @@
---
path: '/github-profiles'
title: 'Github Profiles'
tier: 'intermediate'
---
# GitHub Profiles # GitHub Profiles
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/high-striker-game'
title: 'HighStriker Game'
tier: 'intermediate'
---
# HighStriker # HighStriker
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/image-scanner'
title: 'Image Scanner'
tier: 'intermediate'
---
# Image Scanner # Image Scanner
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/markdown-previewer'
title: 'Markdown Previewer'
tier: 'intermediate'
---
# Markdown Previewer # Markdown Previewer
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/markdown-table-generator'
title: 'Markdown Table Generator'
tier: 'intermediate'
---
# Markdown Table Generator # Markdown Table Generator
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/meme-generator-app'
title: 'Meme Generator App'
tier: 'intermediate'
---
# Meme Generator App # Meme Generator App
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/name-generator'
title: 'Name Generator'
tier: 'intermediate'
---
# Name generation using Recurrent Neural Networks # Name generation using Recurrent Neural Networks
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/password-generator'
title: 'Password Generator'
tier: 'intermediate'
---
# Password Generator # Password Generator
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/podcast-directory-app'
title: 'Podcast Directory App'
tier: 'intermediate'
---
# Podcast Directory # Podcast Directory
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/qr-code-badge-app'
title: 'QRCode Badge Generator App'
tier: 'intermediate'
---
# QRCode Badge Generator # QRCode Badge Generator
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/regular-expression-helper-app'
title: 'Regular Expression Helper App'
tier: 'intermediate'
---
# Regular Expression Helper # Regular Expression Helper
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/sales-db-app'
title: 'Sales DB App'
tier: 'intermediate'
---
# Sales Reciepts # Sales Reciepts
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/simple-online-store'
title: 'Simple Online Store'
tier: 'intermediate'
---
# Simple Online Store # Simple Online Store
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/sports-bracket-generator'
title: 'Sports Bracket Generator'
tier: 'intermediate'
---
# Sports Bracket Generator # Sports Bracket Generator
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/string-art'
title: 'StringArt'
tier: 'intermediate'
---
# StringArt # StringArt
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/this-or-that-game'
title: 'This or That Game'
tier: 'intermediate'
---
# This or That Game # This or That Game
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/timezone-slackbot'
title: 'Timezone Slackbot - TZ'
tier: 'intermediate'
---
# Timezone Slackbot - TZ # Timezone Slackbot - TZ
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/to-do-app'
title: 'To-Do App'
tier: 'intermediate'
---
# To-Do App # To-Do App
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/typing-practice-app'
title: 'Typing Practice App'
tier: 'intermediate'
---
# Typing Practice # Typing Practice
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/voting-app'
title: 'Voting App'
tier: 'intermediate'
---
# Voting App # Voting App
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/math-formula-editor'
title: 'Math Formula Editor'
tier: 'intermediate'
---
# Math Formula Editor # Math Formula Editor
**Tier:** 2-Intermediate **Tier:** 2-Intermediate

@ -1,3 +1,9 @@
---
path: '/battleship-bot'
title: 'Battleship Bot'
tier: 'advanced'
---
# Battleship Bot # Battleship Bot
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/battleship-game-engine'
title: 'Battleship Game Engine'
tier: 'advanced'
---
# Battleship Game Engine # Battleship Game Engine
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/boole-bots-game'
title: 'Boole Bots Game'
tier: 'advanced'
---
# Boole Bots Game # Boole Bots Game
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -25,6 +31,7 @@ continue moving about the arena until only one remains.
- Arena of 8x8 game tiles where the bots battle - Arena of 8x8 game tiles where the bots battle
### Game Configuration Panel ### Game Configuration Panel
- [ ] User can see a game configuration panel with these subcomponents: - [ ] User can see a game configuration panel with these subcomponents:
- Four bot panels with controls to allow the user to input a unique bot - Four bot panels with controls to allow the user to input a unique bot
name, select its Boolean value and operation, select the bots speed using a name, select its Boolean value and operation, select the bots speed using a
@ -42,6 +49,7 @@ or NOT.
name has been defined. name has been defined.
### Game Controls ### Game Controls
- [ ] User can a button in the game control panel to 'Battle!' - [ ] User can a button in the game control panel to 'Battle!'
- [ ] User can click the 'Battle!' button to start the bot battle in the arena. - [ ] User can click the 'Battle!' button to start the bot battle in the arena.
- [ ] User can see bots move based on the speed and direction assigned to them. - [ ] User can see bots move based on the speed and direction assigned to them.
@ -52,6 +60,7 @@ is started.
single bot wins the match. single bot wins the match.
### Arena ### Arena
- [ ] User can see bots bounce off the boundary walls of the arena in a new - [ ] User can see bots bounce off the boundary walls of the arena in a new
direction direction
- [ ] User can see bots pause for an instant when they collide. - [ ] User can see bots pause for an instant when they collide.
@ -66,6 +75,7 @@ in the same boolean result (0 or 1) for both.
- [ ] User can see gameplay stop when only one bot remains. - [ ] User can see gameplay stop when only one bot remains.
### Leaderboard ### Leaderboard
- [ ] User can see the display of wins and losses for each bot on the - [ ] User can see the display of wins and losses for each bot on the
leaderboard leaderboard
- [ ] User can see the tally of wins incremented for bots winning a collision. - [ ] User can see the tally of wins incremented for bots winning a collision.

@ -1,3 +1,9 @@
---
path: '/bug-race-game'
title: 'Bug Race Game'
tier: 'advanced'
---
# Bug Race # Bug Race
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -9,6 +15,7 @@ be customized including bug icons, assigning names to the bugs, making a choice
of who the winner might be, and bug speed. of who the winner might be, and bug speed.
### Constraints ### Constraints
- The developer will need to select the bug icons to be used in the game - The developer will need to select the bug icons to be used in the game
- The developer should randomly adjust the speed of each bug before a race - The developer should randomly adjust the speed of each bug before a race
starts so they travel at different rates within the speed selected by the starts so they travel at different rates within the speed selected by the
@ -29,6 +36,7 @@ if you try to implement it using native language features.
- A 'Start' button. - A 'Start' button.
### Game Controls ### Game Controls
- [ ] User can see the following controls in the input panel. - [ ] User can see the following controls in the input panel.
- A list of race lane numbers with radio buttons for each showing - A list of race lane numbers with radio buttons for each showing
thumbnails for three unique bugs, and a text box the user can use to thumbnails for three unique bugs, and a text box the user can use to
@ -67,8 +75,7 @@ run, number of wins, and number of losses.
## Useful links and resources ## Useful links and resources
- [3D Bug Images](https://www.google.com/search?q=3d+bug+drawings&tbm=isch&source=hp&sa=X&ved=2ahUKEwjxkNT7--jhAhUI-6wKHW3_CgQQsAR6BAgHEAE&biw=1279&bih=550) - [3D Bug Images](https://www.google.com/search?q=3d+bug+drawings&tbm=isch&source=hp&sa=X&ved=2ahUKEwjxkNT7--jhAhUI-6wKHW3_CgQQsAR6BAgHEAE&biw=1279&bih=550)
- [Basic Animations (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations - [Basic Animations (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations)
)
- [How to build a simple Sprite animation in Javascript](https://medium.com/dailyjs/how-to-build-a-simple-sprite-animation-in-javascript-b764644244aa) - [How to build a simple Sprite animation in Javascript](https://medium.com/dailyjs/how-to-build-a-simple-sprite-animation-in-javascript-b764644244aa)
- [Javascript Animations](https://javascript.info/animation) - [Javascript Animations](https://javascript.info/animation)

@ -1,3 +1,9 @@
---
path: '/calorie-counter-app'
title: 'Calorie Counter App'
tier: 'advanced'
---
# Calorie Counter # Calorie Counter
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/chat-app'
title: 'Chat App'
tier: 'advanced'
---
# Chat App # Chat App
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/contribution-tracker-app'
title: 'Contribution Tracker App'
tier: 'advanced'
---
# Contribution Tracker # Contribution Tracker
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -29,24 +35,20 @@ protections it is impossible to totally secure browser applications.
## User Stories ## User Stories
- [ ] User can see a Navigation Bar at the top of each page containing the - [ ] User can see a Navigation Bar at the top of each page containing the
application name and a "hamburger" menu with these option: application name and a "hamburger" menu with these option: - Dashboard - Transactions
- Dashboard
- Transactions
- [ ] User can see a Footer Bar at the bottom of each page containing an - [ ] User can see a Footer Bar at the bottom of each page containing an
About link About link
### Dashboard Page ### Dashboard Page
- [ ] User can see the Dashboard page when the app is started containing - [ ] User can see the Dashboard page when the app is started containing
graphical summaries of the following key metrics. The graphical representation graphical summaries of the following key metrics. The graphical representation
for each is left up to the Developer. for each is left up to the Developer. - Contributions by month for the current year - Total contributions by year - Contribution increase/decrease by year - Average contribution amount by month and year
- Contributions by month for the current year
- Total contributions by year
- Contribution increase/decrease by year
- Average contribution amount by month and year
- [ ] User can return to the Dashboard page, if currently on another page, by - [ ] User can return to the Dashboard page, if currently on another page, by
clicking on the 'Dashboard' option in the hamburger menu in the Navigation Bar. clicking on the 'Dashboard' option in the hamburger menu in the Navigation Bar.
### Transactions Page ### Transactions Page
- [ ] User can see a transaction input panel containing the following: - [ ] User can see a transaction input panel containing the following:
- Transaction date - Transaction date
- Payee name - Payee name
@ -63,10 +65,7 @@ empty state.
entered, add the validated entry to the transaction ledger, and clear the input entered, add the validated entry to the transaction ledger, and clear the input
fields. fields.
- [ ] User can see a consolidated error message detailing any errors detected - [ ] User can see a consolidated error message detailing any errors detected
in input fields, including: in input fields, including: - Invalid date - Blank Payee name - Non-numeric amount field
- Invalid date
- Blank Payee name
- Non-numeric amount field
- [ ] User can click on the 'Update' button to modify a previously entered - [ ] User can click on the 'Update' button to modify a previously entered
transaction. The transaction details will be copied to the transaction input transaction. The transaction details will be copied to the transaction input
panel and the 'Add' button will change to 'Modify'. panel and the 'Add' button will change to 'Modify'.
@ -83,6 +82,7 @@ by clicking on the 'Transactions' option in the hamburger menu in the Navigation
Bar. Bar.
### About Page ### About Page
- [ ] User can click the About link in the Footer Bar to display information - [ ] User can click the About link in the Footer Bar to display information
about the Developer. about the Developer.
- [ ] User can see links to the Developers GitHub and social media accounts - [ ] User can see links to the Developers GitHub and social media accounts

@ -1,3 +1,9 @@
---
path: '/elevator-app'
title: 'Elevator App'
tier: 'advanced'
---
# Elevator # Elevator
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -57,7 +63,7 @@ call an elevator.
## Useful links and resources ## Useful links and resources
[First-in, first out queue (Wikipedia)](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)) [First-in, first out queue (Wikipedia)](<https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)>)
## Example projects ## Example projects

@ -1,3 +1,9 @@
---
path: '/fast-food-simulator-app'
title: 'Fast Food Simulator App'
tier: 'advanced'
---
# Fast Food Simulator App # Fast Food Simulator App
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -40,6 +46,7 @@ completed at a constant rate.
## User Stories ## User Stories
### Application Operation ### Application Operation
- [ ] User can see an input area that allows the entry of the time interval - [ ] User can see an input area that allows the entry of the time interval
for customer arrival and a time interval for the fulfilment of an for customer arrival and a time interval for the fulfilment of an
_order ticket_ by the cook. _order ticket_ by the cook.

@ -1,3 +1,9 @@
---
path: '/github-timeline-app'
title: 'GitHub Timeline App'
tier: 'advanced'
---
# GitHub Timeline # GitHub Timeline
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/git-tweet-app'
title: 'GitTweet App'
tier: 'advanced'
---
# GitTweet # GitTweet
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/instagram-clone-app'
title: 'Instagram Clone App'
tier: 'advanced'
---
# Instagram Clone # Instagram Clone
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/kudos-slackbot'
title: "Kudo's Slackbot"
tier: 'advanced'
---
# Kudo's Slackbot # Kudo's Slackbot
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/movie-db-app'
title: 'Movie Database App'
tier: 'advanced'
---
# Movie Database App # Movie Database App
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/my-podcast-library'
title: 'My Podcast Library'
tier: 'advanced'
---
# My Podcast Library # My Podcast Library
**Tier:** 3-Advanced **Tier:** 3-Advanced
@ -31,6 +37,7 @@ most recent episodes.
of the most recent episodes. of the most recent episodes.
### Favorite Podcast Entry ### Favorite Podcast Entry
- [ ] User can see a '+' button at the top of the favorite podcast area with - [ ] User can see a '+' button at the top of the favorite podcast area with
the hover text 'Add a new podcast' the hover text 'Add a new podcast'
- [ ] User can click the '+' button to display a popup panel to allow a new - [ ] User can click the '+' button to display a popup panel to allow a new
@ -40,13 +47,14 @@ input box for the podcasts page on Podbean (e.g.
- [ ] User can click the 'Save' button to validate the URL and add the - [ ] User can click the 'Save' button to validate the URL and add the
podcast to the favorite podcast area. podcast to the favorite podcast area.
- [ ] User can see a warning message if the url doesn't start with - [ ] User can see a warning message if the url doesn't start with
```https://www.podbean.com/podcast-detail/``` or if navigating to the page `https://www.podbean.com/podcast-detail/` or if navigating to the page
results in a 404 error. results in a 404 error.
- [ ] User can see valid URLs for favorite podcasts retained across sessions. - [ ] User can see valid URLs for favorite podcasts retained across sessions.
- [ ] User can click the 'Cancel' button to discard any data and dismiss the - [ ] User can click the 'Cancel' button to discard any data and dismiss the
popup. popup.
### Most Recent Episodes for a Podcast Page ### Most Recent Episodes for a Podcast Page
- [ ] User can see a table of podcast episodes - [ ] User can see a table of podcast episodes
- [ ] User can see rows in this table showing a clickable episode icon, the - [ ] User can see rows in this table showing a clickable episode icon, the
title of the episode, the date it was originally broadcast, and a heart icon title of the episode, the date it was originally broadcast, and a heart icon
@ -63,6 +71,7 @@ followed by those previously marked as favorites.
## Bonus features ## Bonus features
### Episode Ratings ### Episode Ratings
- [ ] User can see 5 star icons with each episode that denotes how the user - [ ] User can see 5 star icons with each episode that denotes how the user
rates it. rates it.
- [ ] User may click stars from left-to-right to rate an episode. Stars are - [ ] User may click stars from left-to-right to rate an episode. Stars are
@ -73,6 +82,7 @@ to deselect them.
descending rating sequence. descending rating sequence.
### Searching & Hashtags ### Searching & Hashtags
- [ ] User can enter a freeform hashtag with an episode on the most recent - [ ] User can enter a freeform hashtag with an episode on the most recent
episodes page. This hashtag does not need to be predefined. episodes page. This hashtag does not need to be predefined.
- [ ] User can see a search box on the main page and a 'Search' button - [ ] User can see a search box on the main page and a 'Search' button

@ -1,3 +1,9 @@
---
path: '/nasa-exoplanet-query'
title: 'NASA Exoplanet Query'
tier: 'advanced'
---
# NASA Exoplanet Query # NASA Exoplanet Query
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/shell-game'
title: 'Shell Game'
tier: 'advanced'
---
# Shell Game # Shell Game
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/shuffle-card-deck-app'
title: 'Shuffle Card Deck App'
tier: 'advanced'
---
# Shuffle Card Deck # Shuffle Card Deck
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/slack-archiver'
title: 'Slack Archiver'
tier: 'advanced'
---
# Slack Archiver # Slack Archiver
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/spell-it-app'
title: 'Spell-It App'
tier: 'advanced'
---
# Spell-It # Spell-It
**Tier:** 3-Advanced **Tier:** 3-Advanced

@ -1,3 +1,9 @@
---
path: '/survey-app'
title: 'Survey App'
tier: 'advanced'
---
# Survey App # Survey App
**Tier:** 3-Advanced **Tier:** 3-Advanced

Loading…
Cancel
Save