Skip to content

Instantly share code, notes, and snippets.

@00mjk
Forked from MisaOgura/feedback.md
Created December 4, 2022 23:16
Show Gist options
  • Save 00mjk/d5ff41630a171679ef99cdf2541a1799 to your computer and use it in GitHub Desktop.
Save 00mjk/d5ff41630a171679ef99cdf2541a1799 to your computer and use it in GitHub Desktop.

Miho’s tech test

First of all...

Well done on completing the bootcamp! I'm proud of you & glad you had a great time.

The project looks pretty good for a first tech test ;) You should be proud of yourself too!

Hopefully below feedback is useful... happy to jump on a call to discuss if you want too :)

Notes whilst following the installation steps in README

Install all dependencies including the server-side via npm i in tic-tac-toe-api/tic-tac-toe directory

This line in tic-tac-toe-api/tick-tac-toe/package.json is causing problems whilst running npm i from tic-tac-toe-api/tic-tac-toe

”postinstall": "cd .. && npm install && cd tick-tac-toe”,

Had to remove this line & installed dependencies separately in tic-tac-toe-api & tic-tac-toe-api/tic-tac-toe - not sure why but try it again and if it fails, either fix it or add instructions to install dependencies separately like I did.

Copy the local IP address displayed on the console

I've only ran npm i so there's nothing on the console - have you missed a step to run the api server i.e. npm run dev?

Indeed after running npm run dev I can see where the backend is running:

Starting server available on:
http://192.XXX.X.XX:3000
http://localhost:3000

Run react app && server with npm run dev and open the game

At this point I'm already running the command - see above. Make sure to put instructions in the correct order!

Open the game with http://192.XXX.X.XX:3000 on a different device for the opponent

You mean on port 3001? http://192.XXX.X.XX:3000 will jsut open the backend.

Feedback on the README

In general, instructions to run needs to be clearer. Remove node_modules & test your steps on a clean slate, so you can spot errors.

Have a look at the README for the tech test I did for the BBC here.

Add a section to explain the features of your app. What can users do?

Add a section to explain your decision on architecture & code design - what other approaches have you considered? what are pros & cons of these approaches? why did you choose one over others?

Add a section to explain shortcomings of your implementation. What are some of the problematic scenarios?

  • e.g. I found that if you refresh during the game it doesn't go back to the game you were just in. why is it? what can you do to fix this? you don't need to fix it, the time is limited, you just need to be able to explain it.
  • what features would you add next?
  • how would you deploy this to cloud? what services do you use for what? why?

Feedback on the code

Hardcoded IP address

You've hardcoded an IP address in App.js

const socket = io("http://192.XXX.X.XX:3000", { transports: [ "websocket" ], upgrade: false });

If you are just running the API locally, below shoud do. This will simplify the installation insructions as well (as no copy&paste of IP address needed).

const socket = io("localhost:3000", { transports: [ "websocket" ], upgrade: false });

Tests

It would be good to see some tests - if you don't have time, at least think about how to test your application. Some comapnies ask you to either add features or write tests in live coding part of interview.

Code

I don't code in JS/React anymore so won't comment on this too much, apart from to make sure that you are following best practises & latest features of the language/framework.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment