Don't know who started 'Hello World' program concept. But after lots of thinking I named Hello World to my first post. In this post I will discuss about how I struggled to make this 'So Called' CMS from scratch.
History: HTML Programming
Oh, wait... HTML is not programming language... But who cares? Perhaps every newbie web designer/developer thinks HTML is programming language. I was not odd to that group. I also thought HTML is programming language and considered myself as HTML Programmer.
Back on 2013, I learned HTML from W3Schools to build my own site in wapka. If you don't know about wapka then it is a mobile website builder and you can create mobile site for free without any special programming skills. I successfully wasted almost a year on Wapka. After that I want more control over my site so I left wapka in search of control.
Starting With PHP
At first I just wanted to build a site that I can control completely. Searched for perfect CMS but couldnot found desired item. Thought about wordpress but realized I have to learn to code for customizing. Somehow I just learned lesson that 'If you want something then don't wait for others to build it for you.'... then boom Started to learn PHP. Again W3schools hold my hands and later google helped me.
As a lazy and terrible designer I thought to learn bootstrap. I learned it from its official docs and youtube tutorials. I still have zero concept and idea about web designing. See this website's design and imagine how terrible designer I am and also imagine what if I hadn't learned bootstrap.
Building 'So Called' CMS
Learned little PHP and wanted to make a site to share knowledge but stuck with Wordpress vs Own CMS (from scratch). Easiest method versus Difficult method. Its little hard descisson, I had hundred's of reason to go with wordpress but I choose difficult method because of unknown reason. Actually I thought it will bring some twist to my life but as usual nothing happened.
But it enhanced my skills. I learned a lot of small concepts and made them work together. If I choose Wordpress that can be done with theme within few minutes but I won't go beyond them. I have to learn more to give shape to my idea so now I am happy with my decision.
Easy To Think Hard To Code
Its pretty easy to figure out what I want but its hard to code it. I just want a cms where approved user can post blog and manage downloads. Pretty simple right? make a user table and add user information now create simple form to add blog. Finally show blog from database on index page. Done! CMS is ready.
But it took more than 3 months to complete it. It took more time because it's my first CMS and I couldn't give enough time.
Stealing time of Job
As a 10-5 man its little hard to save time for your personal work but somehow I managed time to work. I am almost free at office time. I don't have to work all 7 hours except few days. I could not utilize that free time for coding because of distraction but used that time to handling errors on my code. I used to write code at home and review it at office.
Daily Updated Idea
When I started to write script I have pretty clear and simple idea but when I started coding, daily new idea comes in my mind. I have re-written almost every line of code even if it was working perfectly. For eg. first I designed it for one user but later I reconstructed for multiple users with different roles so It contains lots of vulnerabilities on this feature.
But later I realized I won't complete it if I tries to include each and every feature that I thought and decided to complete it and update it later.
Google and Google
I followed "Imagine-Write it if this works then fine if not Google It" cycle during. Whatever I thought I imagined the logic behind that if that works fine then I used that else I googled it. Normally Stackoverflow is most visited site at this period.
We use different date system for daily and official use named B.S. It is based on Solar Days so we have difficulties while using A.D. date system. To address this difficulties you can use Site Setting to change date system for this site. You can also choose language. Currently only Nepali and English language are available.
This CMS is mainly focused on my need. It still lacks lots of features such as more advance comment system, effective search system, I will improve them later.
I learned following lessons during the development period of this so called script. If you are also beginner then this might be helpful to you.
- Crystal Clear Concept.
- Finish it First & Update it Later.
- Everyone feel depressed... It's ok to ask for help.
- Write Flexible Codes Which can be updated easily.
- Dudh-Chya(Milk-Tea) is important.
- Basic terms about web and internet are important.
How can I end this post without mentioning these
- PHP : For all backend work
- MYSQL : Cheers to MYSQL for storing each contents of this wonderful site.
- BootStrap : As a terrible designer I won't forget you. Thanks for being easy way for lazy one like me.
- Fontawesome : Cheers to Cute Icons !
- TinyMCE : Almost forgot but Realized I am writing on this wonderful Script
- Infinityfree : Thanks you Infinityfree for carrying load of this site for free. You also can host your PHP site without spending single penny.
- RoundCube : Open Source email provider.
- Merchantile : Free .np domain provider for Nepali Citizen.
I will be happy to hear you...