Giter VIP home page Giter VIP logo

reactment's Introduction

Welcome: HackRU Reactment Challenge

Welcome to the HackRU Reactment Challenge, RND's community driven interview sandbox. Regardless of whether or not a recruitment task has been emailed to you, feel free to clone this repository and have fun! Everyone is welcome!

All our dreams can come true, if we have the courage to pursue them -Walt Disney

If you have any questions, don't hesitate to reach out to us. We want to help you! We want you to succeed!

Technologies

Below is a list of the main technologies Reactment uses:

  • Node.js (npm)
  • React

Feel free to research and gain background knowledge in any of these technologies! Once again, don't hesitate to ask us any questions. Understanding different technologies and how they interact is the first step to success.

What if I don't know React?

This is completely fine! We 100% expect this to be the case for many of you! React can be a beast to starters! But here's a little secret: we didn't choose React for this challenge because we expect everyone to know or learn NodeJS and React, but rather because we needed some language and React was simply the hot choice! Know that part of this task tests how well you operate with and react to different technologies.

Getting Started

First things first, get rid of those nervous jitters! Take this as any regular programming task that you have to do either for work, school, or simple fun. Remember that you are contributing to the open source community! No mistake is detrimental here! So make mistakes, but most importantly, have fun doing so! See the steps below:

0. Self-assign a task

Peruse reactment issues here. Each issue has an assigned difficulty level (see below for level definitions). Once you are ready, self-assign any unassigned and open task. Once you self assign a task, you own the task (this ensures no one else accidently works on the same thing as you). You can also feel free to come up with your own ideas open a new issue yourself.

1. Fork and clone!

Once your have an issue self-assigned, you can now officially get started. Next step is forking. Via Github, fork the repository to your personal account. Once you have it forked, clone it:

git clone https://github.com/<your-username>/Reactment.git
cd Reactment

2. Install node dependencies

At this point, you should have a copy of the code available on your local machine. Time to get into the weeds with react! Next step is to install node dependencies:

cd challenge
npm install

3. Start the development server

You have everything available to start programming! Start the development server:

npm start

At this point, your web browser should automatically open up, and you should be able to see this website.

4. Poke around the code

Open the code in your favorite IDE. Feel free to poke around the code and make changes. Break the website a couple of times to learn what is actually happening! Once you are comfortable with what is going on, implement the feature or perform the task specified in the issue you self-assigned in step 0.

5. Submit

Once you are done, push your code to github

git commit -m <some random message>
git push origin <branch name, you can just use your name or github username>

Put in a pull request from your forked instance to our main repository under the hackru organization. Be sure to follow the standard guidelines for pull requests.

reactment's People

Contributors

5h1v avatar adeeld avatar alan-w25 avatar avsomers25 avatar benlambert43 avatar bhivam avatar briaxoxo avatar colefrench avatar dependabot[bot] avatar fawazt231 avatar foltik avatar gabrielweinbrenner avatar hi676 avatar joncanales avatar kevinmonisit avatar lucentfong avatar man1han avatar mjrb avatar reedkrawiec avatar ryaml1221 avatar rzmk avatar sahej172002 avatar sejanep avatar shanmukhaditya avatar shivanmodha avatar sidselothcodes avatar srinandan-gondi avatar srnazng avatar tang-michael avatar v0lv0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reactment's Issues

(2) Ignore me

Description

Level 2

Create a useful gitignore in the root directory. Bonus points if its uselessly useful, whatever that means

(3) Time is but a Construct

Description

Level 3

We need to prove time is real! What better way to do that than with pictures? In the home page, replace the date ("It is Month Year”) with a Calendar that shows the date/month.
You can choose to implement this however you like. One starting place you may want to look at is Google’s Calendar API [you will need a Google API key for this].

(3) I Got Lost

Description

Level 3

What kinda site lacks a navbar? Implement a sticky navbar!

(2) Meme Machine

Description
Level 2
Add a new page full of your favorite memes (keep it PG). Make it such that a random meme shows up every time you load the page.

(2) time to make some money

Description

Level 2

lets add a way for people to become sponsors. on the sponsor page add a form that asks people for their name, a donation amount, and a "become a sponsor" button. when they click the button it should print their name and contribution amount to the console. for bonus points you can instead list the names and contribution amounts on the page itself instead using a react stateful component, or the react useState hook.

(1) Helpless users

Description

Level 1

Add a help button for confused users. don't connect it to anything, because we don't have enough money in the budget to actually help them. Extra points if you can figure out whatever the opposite of help would be in this context.

(1) Noisy Console!

Description

Level 1

There is some noisy log statement in the console! Remove it.

(3) Sum Test

Description

Level 3

add an automated test for the sum function in App.jsx. Use the already included jest library and npm test to run the tests

(3) Improved Nav

Description

Level 3

Now that we have an improved nav bar, let's put it to work

  • add a callback to the constructor of the Navbar component to notify the parent component when the user selects a different page
  • add state to the app component to display different content when the user selects a different option on the nav bar

All current contend should be considered part of the home page, and the home page should be the default one

(2) View Counter

Description

Level 2

add a counter to say how many time's the page has viewed. we haven't figured out a good way to track this yet so feel free to just display a random number! (preferably a big one)

(3) Announcements

Description
Level 3
Create a form with the following features:

  • User should be able to type in the message they want to announce into the form
  • The user should be able to select the type of announcement it is (Update, Warning, Critical)
  • Display the announcement in the home page when the user submits the form
  • The announcement should be wrapped in a box that is a different color depending on the type of announcement (update - blue, warning - yellow, critical - red?)

(1) Who you gonna call?

Description
Level 1
Replace the images in the Contact Page with instructions on how to contact the Ghostbusters!

(2) its all in the numbers

Description

Level 3

add an html <table> with some interesting data points. the data can be about anything including horses, box office data, leap years, ect... get creative!

(1) who's github???

Description

Level 1

adjust the button that says "go to github" to instead say "go to HackRU's github"

(1) Am I Even Rendering?

Description

Level 1

Sometimes, I don't even know if I'm rendering! Add a log statement in the render method so that I know whenever the render method is executed.

(2) peanut butter

Description

Level 2

This site needs more JIFs ... or GIFs ... or whatever. feel free to get creative with your gif choice but keep it pg13

(2) What year is it marty???

Description

Level 2

use the Date class to display the current month and year. Just in case any time travelers come wandering into our app.

(1) PARTY PARROT

Description

Level 1

Add Party Parrot to the homepage and make him dance!

(2) Boring White

Description

Level 2

Honestly, the white background is a bit boring. Change the color.

(3) Prepare for Trouble and Make it Triple

Description
Level 3
Everyone’s favorite thing to do… bug fixes! Try to fix the following bugs without killing baby yoda.

  1. Baby Yoda covers the navbar when you scroll
  2. The Navbar doesn’t let you switch pages when you scroll down.
  3. Rapidly switch between the home, sponsors and about pages, a bug occurs (Why? Can you fix it?)

(2) Perfectly Balanced

Description
Level 2
The Thanos snap needs to be random! Modify the Thanos snap such that it randomly determines which characters get disintegrated rather than having it predetermined. If Star Platinum gets disintegrated, output "Unbalanced!" into the console.

(3) Contraction Contraption

Description

Write a UI that takes a text sentence as a string and returns a string with all the contractions instead (ie. "is not" becomes "isn't"). Convert at least [should, could, would, do, is, are, does, have] not => []n't and [should, could, would] have => []'ve. Many may occur in a sentence. Words will be delimited by single spaces and will not contain punctuation.

Trivia

This is actually the first ever RnD interview question! The interview process was very different, so the above is a shorter version of the question. The whole question was:

  1. Write a function that takes a sentence as a string and returns a string with all the contractions instead (ie. "is not" becomes "isn't"). Convert at least [should, could, would, do, is, are, does, have] not => []n't and [should, could, would] have => []'ve. Many may occur in a sentence. Words will be delimited by single spaces and will not contain punctuation.
  2. Multiple contractions can be chained in some cases: there's a famous Southern "y'all'd've" (you all would have) which y'all'd'ven't (you all would have not) heard of if y'all'evn't (you all have not (I may be making this one up)) been to the South. Additionally, Scottish slang allows for "am not" to be written as "amn't," which ain't different from "ain't." Design an app to let users input sentences and get shortened (or even expanded) ones back. How would you allow them to conveniently configure your tool to handle all sorts of contractions (even their own, or their own odd chains)?

(1) Clutter

Description

Level 1

scrolling is s o o o o much effort. move the zodiac table and skeleton gifs from the home page to the about page so you can click there instead of having scroll. this also means people can focus more on baby yoda.

(3) Number Input

Description

Level 3

add a number <input> and a button. when a user pushes the button it should print the number in the console.
@shivanmodha should this be 3 or 2. dm me

(3) talk to me

Description

Level 3

add a fake live chatbox to the contact us page. the ai behind this will be highly sophisticated: whenever the user asks the bot a question it will always respond with "I didn't quite understand that, please try rephrasing what you said." you will need to create a chatbox component that is either a react stateful component, or uses the useState react hook. it should list out all the messages from the user and the "bot", have a text input for the user to type a message, and a send button that "sends" the message. this one is a bit complicated so feel free to ask lots of questions

(1) Hello World?

Description

Level 1

Seriously, "Hello World"? Do us all a favor and change that to something more meaningful that is more representative of what Reactment is.

(3) Where'd all my numbers go

Description

Level 3

currently the number logger feature sends all the numbers to the console. make it so that instead, it lists out all the numbers in an li so the user can see them without opening the console.

(1) I’m a Fun Guy

Description
Level 1
Add a picture of the most fun fictional character or celebrity you know into the fun facts page with a fun fact of that person below the picture as a caption.

(1) additional contact info

Description

Level 1

have the contact page generate a random email and phone number to display on the contact page. perhaps someone may find it "helpful"

(1) Greetings Earthling

Description
Level 1
Format the home page such that there is a bold title above the greeting. The title and greeting should be on separate lines and taken from strings.json
(Title: HackRU Reactment Challenge
Greeting: Welcome to Reactment, RnD's Interview Sandbox!! Feel Free to Explore! Reactment is not HTML. #Im19andThisIsDeep.)

(2) Not the Norm

Description

Level 2

Display a random joke every time you enter the Fun Facts page. In addition, add a thumbs up/down button next to the joke for the user to click on if they liked or disliked the joke. If they disliked the joke, display a new joke and reset the thumbs up/down buttons.

(2) Help I'm Stuck and I can't Refresh!

Description

Level 2

This help button is useless… what should we do?
When a user clicks on the help button in the homepage - refresh the page (states of everything should reset)

(3) Fresh Tomatoes

Description
Level 3
In the Contact Us page, add a way for users to rate their experience out of 5 (1 being worst, 5 being best). Take the average of these ratings and find a way to display it graphically. This graphic should be modified every time the average changes. If our average rating is above 4.2, then our website is certified fresh. Find a way to make our users know if we’re certified fresh!

(1) Secret Formula

Description

Level 1

We don’t want the world to know the secret to the Krabby Patty formula! Move the Krabby Patty from Home to Fun Facts and make it have a transparent background.

(3) Fade!

Description

Level 3

I don't like how the text just appears. Add a fade in effect!

(2) The Krabby Patty Formula

Description
Level 2
Hide an image of a Krabby Patty somewhere on one of the pages that prints “Are you feeling it now Mr. Krabs?!?” into the console when clicked on.

(2) Cash Rules Everything Around Me

Description

Level 2

Monetize this app! add a side bar to display whatever add you want on the side (keep it pg13). bonus points if you can get it to pick a random add from a handfull

(1) Show me the Money!

Description
Level 1
Move the Donate Now sponsor form below the pictures to above the pictures in the Sponsors page.

(2) It’s the Final Countdown

Description
Level 2
Next to the date displayed in the home page, write how many days until the fall 2020 semester begins (xx days until Fall 2020 Begins!) . If this number reaches zero, display that the Semester has begun, if it is negative, display that the Semester is in progress.

(3) (Ab)using our backend

Description

Level 3

let's spice up this website's homepage by listing out hackru announcements from slack. using the js fetch function you can get some public anouncements from our backend using the url https://api.hackru.org/prod/dayof-slack. if you just go to that url in your browser you can see what the data looks like. important make sure you only call fetch when a component is initialized using a react stateful component or useState hook. this ensures there aren't excessive requests when the page is updated, like when you use the "log me" button

(1) Uno!

Description

Level 1

When there’s only 1 person left alive on the about page (after Thanos snapped everyone else away), display an error message saying “Thanos’ fingers are sore!” if the user clicks on the Thanos snap again. We don’t want Thanos to get arthritis do we?

(2) Bland Brand Land

Description
Level 2
Display the HackRU logo in a header above the Navbar. Add an animation to it when you load the page!

(2) Sitting in the Hall of Fame

Description

Level 2

When someone clicks “Become a Sponsor Now” in the sponsor’s page, list their name somewhere in the sponsor’s page. In addition, give them a rating based on how much they donated.

(2) Fast Travel to GitHub

Description

Level 2

Woah this looks really plain. Maybe we should add a button that routes the user to the HackRU GitHub underneath the greeting?

(3) Thanos’ Bizarre Adventure

Description
Level 3
Reality can be whatever we want it to be!

  1. Change the about page so that there are 4 images in a 2 by 2 grid. These images can be of anyone from your favorite TV shows (though to be consistent with the title, I recommend Jojo’s Bizarre Adventure).
  2. Add captions to each of these pictures.
  3. Add a button that when clicked on, eliminates half the characters on the page when clicked.
  4. Add a cool animation when the characters disappear

(1) Going Green!

Description
Level 1
Change color of the banner background behind the pictures in the sponsors and about pages to green.

(1) I Have Nav

Description

Level 1

Rework the navbar so that instead of having 6 separate tabs, we only have 3: Home, About, and Contact us. Move “Sponsors”, “Announcements”, and “Fun Facts” as sub tabs under About.

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.