As a Web Developer, I have been building numerous side projects, learning new technologies, and doing internships. However, I recently decided to explore a new dimension and started freelancing. I was excited to try something new and expand my skillset in many aspects.
Looking back on the experience, I realized that there were many valuable lessons I learned along the way. In this blog post, I’ll share my experience and the main lessons I learned from my first freelance project.
Contents :
- Finding the Freelancing Project
- Project Scope and Requirements
- Client Communication
- Timeline and Deliverables
- Challenges faced
- Lessons Learned
- Achievements and Financials
- Personal Growth
- Conclusion
1. Finding the Freelance Project
I landed my first client through a mutual network. The client was initially in contact with my friend, who told me about the client’s project requirements. I decided to seize this opportunity and called the client to discuss the project further.
The client then provided me with the contact information of the technical guy at their company and suggested that we should discuss the technical aspects of the project first. If everything went well, we could then discuss the financials.
I was excited to move forward, so the very next day, I contacted the technical expert to discuss the project. After a call where we discussed an overview of the project and his requirements, I was confident that I could complete the job. I called the client back to talk about the financials, and we discussed different phases, such as the advance payment, payment after design, and payment after hand-off. After negotiations from both sides, we agreed on a total amount of 40,000rs.
2. Project Scope and Requirements
My task was to design and develop a full-stack website for the company. This involved creating the website’s front-end and back-end components, as well as implementing user authentication, such as login and signup. Additionally, I was responsible for creating dynamic reports and fetching data from the database. The website needed to be user-friendly and visually appealing while also being efficient and responsive. Although there were no limitations or requirements for the tech stack, the database specified for the project was MS SQL.
3. Client Communication
For communication, the client created a WhatsApp group and added 3–4 members from their company. This allowed for seamless modifications and updates to be shared between the team and myself. Throughout the project, we communicated exclusively on this group and through calls, where I provided daily updates on the website’s design, new features, and functionality, complete with screenshots and demos. The client provided valuable feedback and made modifications as necessary, ranging from minor design changes to the addition of new features and functionality. This collaborative communication approach was key to ensuring that the website met the client’s expectations and was delivered on time and within budget.
4. Timeline and Deliverables
Phase 1: Design Hand-off
The day after our call, I began designing the website, and within 3 to 4 days, I shared the first draft and a presentation on the WhatsApp group. The client provided valuable feedback, ranging from minor changes such as color and shape modifications to major changes such as altering the navbar’s functionality. I incorporated the feedback and made the necessary changes, providing updated drafts for review on an ongoing basis. and after a week or so we finalized the design.
Phase 2 : Research and Learning
Since I was unfamiliar with MS SQL and how to integrate it with Node.js, I turned to the internet for help. Unfortunately, I found very few resources related to MS SQL integration. However, I eventually stumbled upon a great blog post that outlined the integration process step by step.
Phase 3 : Development
After conducting the necessary research, I began the development phase and integrated Node.js with a demo MS SQL server. From there, I began creating various frontend components and pushed them to GitHub, allowing the client to review and provide feedback on each iteration. This collaborative approach helped ensure that the client was satisfied with the website’s design and functionality.
Backend work for the website proved to be quite challenging, particularly due to the company’s strong focus on data analysis. In total, there were 12 large databases, each containing upwards of 100 tables, which made the backend work quite complex and time-consuming.
To handle this, I broke the backend work down into smaller, more manageable components and developed a clear plan of action. I also utilized various tools and technologies to streamline the development process.
Phase 4 : Handoff
After many sleepless nights and putting in a lot of hard work, I was finally able to hand off the completed project to the client. The feeling of relief and satisfaction was immense, as I had worked tirelessly to ensure that the website met all of the client’s requirements and was functioning perfectly. The handoff process went quite smoothly, and I was able to provide the client with all the necessary documentation and support for the website’s maintenance and upkeep.
5. Overcoming the Challenges Faced
It’s not uncommon for clients to prioritize functionality over demos or screenshots, especially when it comes to backend work. However, it can be challenging when you’re in the design phase and not yet ready to implement certain features.
Integrating MS SQL with your Nodejs server was a particularly challenging task. It’s perfectly normal to feel impatient or frustrated when working on something new and unfamiliar, but it’s important to remember that every new skill takes time to master.
On top of that, balancing schoolwork and client demands can be tough. It’s important to manage your time effectively and communicate clearly with your client to ensure that their needs are being met while also prioritizing your own responsibilities.
Overall, working on a complex project can be challenging, but with patience, persistence, and effective time management, you can successfully deliver a high-quality product that meets your client’s needs.
6. Lessons Learned
When embarking on a new freelance project, creating/asking for detailed documentation of all the requirements and project details can be incredibly beneficial. This documentation acts as a reference point for both you and your client, ensuring that everyone is on the same page and there is no ambiguity regarding the project’s scope. Additionally, having clear and detailed documentation can also be useful for negotiation purposes in the later stages of the project.
Learning something new can be a challenging and time-consuming process, but it’s essential for growth and development. Whether you’re learning a new programming language or a new skill, it’s important to be patient throughout the process. Don’t fall into the trap of tutorial hell, where you spend all your time watching tutorials and never actually putting what you’ve learned into practice. Instead, take the time to learn a new concept or skill, then use it to build something. This will help you solidify your understanding of the topic and give you a chance to apply what you’ve learned in a practical way.
7. Conclusion
In conclusion, working on this project was a great experience for me, and I learned a lot from it. From managing client expectations to working with new technologies, it was a perfect roller coaster ride. I gained a lot of confidence in my abilities as a full-stack developer and learned to work more efficiently and effectively under tight deadlines. This experience has also taught me the importance of clear communication, the value of timely updates, and the value of collaborating with the client throughout the project. I am proud of the work I accomplished on this project and am excited to apply these learnings to my future projects.
In the end, Thank you for reading this blog, I will be coming up with more useful experiences in the future, so follow @sanket00900 and stay tuned !!!
Top comments (0)