How to structure projects:
Step 1 - Start from your Goal. Ask yourself: Why make the project? Who is it for? What will make it valuable?
Step 2 - Write user stories. User-centric design. List the basic functions the end user should be able to do. (Upload a file, create an account, build a dashboard, etc.)
Step 3 - Define your data models. What information will you store? How will it relate to other data? What do those relationships look like?
Step 4 - Nail an MVP (minimum viable product). A critical review of all user stories and features listed, and ask yourself: Do I absolutely need this function for my app to work? If not, remove it from your list. The MVP forces you to focus on what actually matters, what gets you to a working prototype fast, and what will not overwhelm you.
Step 5 - Draw a stupid simple prototype or very basic wireframe of your application. Use a pad and pencil to create a basic page layout to draw the needed functions (where does the login form go?, What happens after a file upload completes?, How do I navigate between pages?, etc.)
Step 6 - Understand what the future of your project is going to look like. Determine what type of project it will be in six months: Will it still be a simple hobby, or one that will need to be able to scale up for many users?
Step 7 - Drill into the components. Questions to ask yourself: Will it be just a simple script, or will it require a back-end API and a front-end interface? Will it be a browser extension? A mobile app? A web service? What is the architecture of the project? Think about how users are going to interact with your application, and what technical components you will require to make it work.
Step 8 - Picking your stack. A stack is just a set of tools that help you create a project. Begin first with the project idea, then decide what tools are available to solve the problem or create the project, then pick the best one for the project. A general rule: Pick the simplest stack, that fits within your relative skill-set, that you can accomplish your goals with. After picking a stack, a question to ask yourself: Can I deploy this?
Step 9 - Overall development process. This step is where coding begins. Create a project skeleton: -basic folder structure. -development environment. -version control. Setting up the database and creating data models. Build the back-end routes: -API endpoints. Front-end interface. -Connect to back-end. *Project iteration.