How to Approach Projects ?
Whenever it comes to creating a project or making a project, the most crucial part of it is to have an approach to it. Many a times, what developers do is that they directly start creating the project, rather than understanding what the requirements of the project is.
The way I approach a project is:
1. Initial Planning
- Understanding what is the exact requirement in detail
- Creating a flowchart understanding what is the flow of the entire project
2. Technology Selection
Based on the flowchart, NOW is when I choose the tech stack to start the project. Now this step also has some conditions while making decision on:
Backend Selection
- Fast Processing → NodeJS
- Data Processing and Cleaning → Python/Django/Flask
- AI or Machine Learning → Python or NodeJs (Personally my choice as there are many libraries which are available here as well)
- Security → Java
Frontend Options
- NextJS → Fast Loading and Image Optimisation
- ViteJS → Faster Development
- Or Any other JavaScript Based Frameworks
- TalwindCSS/ShadCN → Styling
Database Choices
- MongoDB → Super Easy Syntax and easy to connect and also document based
- Supabase → OpenSource Structured Database like MYSQL
- ChromaDB/PineCone/MongoDB → Vector Embeddings and Vector Search (AI Related Applications)
API Testing Tools
- Postman
3. Design Phase
After I am done choosing my Tech Stack, next step is to start with the designing the frontend. For that I usually go for either Figma or Penpot (Open Source Figma Alternative)
4. Development Process
Now this is where a little debate happens, some directly go for frontend development while some start with backend. Don't worry nothing is wrong here, you can start with anything you want.
I personally choose to start with creating the backend first as I think this particularly takes a lot of time developing and most importantly TESTING 😏😏.
I use TDD approach for this which is Test-Driven-Development i.e. create an api → test it with multiple test case you can think of, then move forward with the next one.
5. Frontend Development
Once backend is created, now start with designing the frontend. Always prefer using reusable components in your website so that:
- Number of Lines of Code is reduced
- Debugging is easier
- Code is Reusable
Start creating the frontend using mobile first view as it is very important to have your website both desktop and mobile friendly. Using this approach reduces a lot of your time in development.
6. Integration & Testing
Once the frontend is completed, next task is to start integrating the APIs. This is where all the crucial aspect of any website is implemented.
Once APIs are integrated, next step is to do a thorough testing of the integrated APIs and UI. If the results are as per your requirements, you are good to go for deployment else debug the issues and solve them until and unless you're requirements are not met.
7. Deployment
For Backend deployment I usually prefer:
- Render
- PythonAnywhere
For Frontend My only way to go is vercel.com
Once this is done, your project is completed. Congratulations 🥳🥳
Just a small reminder, this approach can be changed based on the scalability and use case of the project.