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 :)
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.
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?
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 });
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.
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.