Skip to content

Hostname47/forum

Repository files navigation

Forum website

This is a forum website (discussion board) created with ❤️ by Mouad Nassri.

Description

I've been working on this forum website project since April 2021 (𝑵𝑶𝑵𝒁𝑬𝑹𝑶 𝑫𝑨𝒀𝑺), after I get my head around Laravel framework and its amazing features and tools it provides to make the development simple and efficient.

My intention was not about building this project itself, Instead I was trying to practice TDD (Test-Driven Development -1-) in a Laravel environment after I watched a debate between Uncle Bob and Jim Coplien about it, and I really liked the way TDD methodology works by writing a test for a certain piece of functionality, running the test to see it fail and then writing the code to make the test pass. debate : https://lnkd.in/dtsERuWa

To practice, I chose a forum website as an example to implement my tests and apply my knowledge by practicing instead of reading boring docs. Everything was going smooth and fine, clean code, meaningful documentation, and 𝐠𝐫𝐞𝐞𝐧 𝐦𝐞𝐬𝐬𝐚𝐠𝐞𝐬.

Little by little, the application that was made for learning purposes started to grow. I decided to create the GUI, and add cool features like notifications broadcasting, queued jobs and caching.. in order to implement all sort of assertions and test cover as many features as I could.

After a while, I noticed that I was focusing so much on writing code itself and GUI, and 𝐈 𝐬𝐭𝐨𝐩𝐩𝐞𝐝 𝐰𝐫𝐢𝐭𝐢𝐧𝐠 𝐭𝐞𝐬𝐭𝐬; I made the mistake of my life. I thought I was able to complete the rest of the project without testing it because that was slowing me down and take lot of my time. Right after I finished the admin section (took me more than the project itself), I went back to the application to do a quick review and guess what !? erros and bags started to shine here and there and the code get messy and becomes a horrible nightmare. I didn't give up, because I poured my blood, sweat, and tears into thid project so I have to finish it without any error or bug. As Jim said (in the debate) : '𝘠𝘰𝘶 𝘤𝘢𝘯'𝘵 𝘩𝘪𝘥𝘦 𝘢 𝘣𝘢𝘥 𝘢𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵𝘶𝘳𝘦 𝘸𝘪𝘵𝘩 𝘢 𝘨𝘰𝘰𝘥 𝘎𝘜𝘐'

I delete all the previous tests (+260 tests with more than 700 assertions) because the logic was modified so much after last time I write a test function and almost all previous tests failed. After I solved so many issues (things like N+1s and slow queries), I started writing tests from scratch to cover as many features as I can.

I learned a lot of things during this period like testing, debugging complexe operations, creating beautiful UI components and animations, write efficient queries, deploying (CI-CD) as well as dealing with servers and my coding skills improved dramatically in comparison to year before, but more importantly, I changed my passion in coding into a habit and also my perspective about errors and bugs from issues that stumble my feet into challenges and opportunities to grow and be patient.

Feel free to give me your feedback, I'm open to any critic or opinion.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published