Glad to hear you are starting a project - they are excellent ways to learn.
The way I learnt how to build MERN applications is:
- Learnt MongoDB, Express, React, and Node in the fCC curriculum
- Watched some YouTube tutorials building fullstack applications
- Started building both backend and frontend at the same time
The reason I do both at the same time is I usually do not start with the most well-defined user-stories. This leads to the structure of my apps constantly changing, and I usually only figure this out when something in the frontend does not work with something in the backend and vice-a-versa.
There is nothing wrong with this fact, because you are about to. Perhaps, if this project of yours is looking like a massive undertaking, then it would be beneficial to start with a smaller project first (TODO App is usually a decent example which can contain various levels of difficulty).
This would be problematic, in causing you to restructure your app too much, when you realise you need to include a technology way down the line. So, I would recommend you get an idea of this at conceptualisation, before starting to code.
It does not sound like your app needs Socketio, but your user-stories are a bit sparse to say.
- If you have not already, the fCC curriculum will give you an idea of many common technologies used in a MERN app.
- YouTube has too many tutorials on MERN apps, and it is useful to see how to start and use the boilerplates which exist.
If you are quite unsure, I would advise you to find something at least similar that is well documented, then copy the boilerplate off of that (e.g. find a tutorial which uses a CRA on the frontend - ridiculously easy to set up) . Otherwise, you will need to go down a whole other rabbit hole in learning technologies to get the app started (e.g. Babel, Webpack, Gatsby, etc.)
Hope this helps