I looked at the linkedin. I would want more information there. I would want your FCC training and other schooling and a link to your portfolio. Having your CV downloadable would be nice, too.
Your portfolioā¦
The look is simple and functional. I just think it could have more information. Google search for other devsā sites and see what they include. This is a chance to sell yourself and unlike the CV, with some proper organization, you can include more information.
One thing I notice is that the Family List project doesnāt go anywhere when clicked. Also, the ācodeā links seem disproportionally small.
I looked at you Family list project code. What I saw looks pretty good. But I do have some notes.
Your project should have a .ignore
file. In it should be node_modules/
to keep the node_modules from uploading. You should never save those in the git. People will recreate them using the package.json and yarn.lock if they download it. They are just too big to store on github and there is no reason.
You should edit the README.md and have it reflect this project, not the starter project.
The code looks pretty good. I would suggest standardizing some of your formatting. Install something like eslint and/or prettier. It is readable but it looks a little chaotic. Experienced coders tend to be much more consistent. And they donāt tend to use an indentation of 8. Some of your code is difficult to follow, just because of the formatting.
In App.js, why are those class methods defined in the constructor?
In App.js, I like the currying, but sortList does not to be a class method, it can just be a simple, pure function.
In Column.js, things like this:
showModal = () => {
this.setState({ show: true});
};
could just be:
showModal = () => this.setState({ show: true});
Itās a small thing, but it is probably more common for experienced coders. There are a few places where you could do this.
Maybe itās too nitpicky, but a file like DataBase.js - I donāt know why that is PascalCased. It is not a component or a module. In fact, as a dummy data file, I probably would have just made it a json file to make it clearer what it is. For that matter, I would have put things like this in their own folder. For that matter, Iād at least put all the components in their own folder, called ācomponentsā. There are different ways to organize a React project. It may not matter much on a small project, but it can become critical in larger projects.
In Modal.jsā¦
const container = document.createElement('div');
document.body.appendChild(container);
ReactDOM.render(<Modal />, container);
This is probably the biggest sin. In React, you should not be manipulating the DOM like that. You should be including that component directly in the App.js and controlled through callbacks/context/redux. You can also put it where you need it and control it/them directly there.
There is a lot of stuff in your index.html, a lot of content that I would expect to be React components. For a React project, you donāt tend to write a lot of html (except as JSX). Usually inside the body
, you mainly have just <div id="root"></div>
. (There might be an exception that is not occurring to me at the moment.)
For this and the previous comments, one of the points is to let React handle the DOM.
But still, it looks pretty good, there is some good, solid React in there, youāre on the right path.
If I can be so bold, as a developer, Iād like to see you continue to develop your React skills, work on some supporting libraries, like redux, redux thunk or saga, a forms library, maybe a U/I component library, more use of APIs, i18n, etc. I would want you to keep building more complex apps. You may have to learn a little backend to set up your own server. Then you could learn some things like authentication. After that, you might pick a project and write out some unit tests, etc.
Anyway, those are my thoughts. But like I said, I think youāre on a good path. Keep up the good work.