During the semester break,my senior informed me that the next semester would be about building a website. From past experience (The Music app), I knew that I had to prepare myself for the worst and decided to get started with the basics (HTML, CSS and Javascript).
I know a skilled friend from my class. My friend and I would compete against one another to see who could create the better website. He would be my motivator and competitor throughout my semester. Without him, I would not have progressed this fast.
After building a solid foundation of HTML, CSS and JS, I decided to focus on the backend.
I decided to spend my time learning MySQL statements and polishing my HTML, CSS and JS Basics.
During the Semester, I had to develop a Database For my website. With guidance from my senior, teacher and a lot of self-directed Learning. I manage to create a pretty good EER diagram for my website. (Though it will have flaws in the future)
During my break, my senior recommended React framework for my website.
I was nervous and sceptical at first. But I decided to take the leap of faith.
At the end of the break, I had already completed my back-end API and had already started with the project.
At this point, I had already finished with my back-end server. I had already begun building the website. At first, It was hard. I found myself rusty as I tried to use my CSS for my header which is difficult and time-consuming. I had difficulty understanding how to create a proper react component. Though it took a lot of time, I came to understand how it works and would later on help my understanding of React.
At this time, I also came across Ant design. Which is a free UI React component Library for use. Though hesitant, I would use it for my website. The Ant design component has allowed me to focus more on my functionality instead of the UI.
I would, later on, get addicted to the website. I would find new methods to improve my code and creation of react components.
I would also discover Swiper and Framer as I wanted my website to look amazing. I would get the dopamine rush just
by implementing a new feature.
Every error I encounter would give me new insight into how REACT works and code improvement I can work on. My website's progress was quick and steady.
Even good things come to an end. I would stop my progress after my chat function as I would help my friends debug and implement their features. I knew I had to stop there as I would not learn a lot even after implementing newer features that I already know how to build.
This was my first time developing a full stack website by myself. Though scary at first, I found it really easy after knowing the basics and it was a fun experience. The journey of learning how the website works and how to create it oneself feels amazing and I would love to do it again if given the chance. Overall, it was a positive experience.
What I have learnt over the pass 1 and a half months were:
React and react-hooks (useState, useEffect, useRef, useMemo, useCallback hooks)
Sockets
Web Api
MySQL statement
JS, HTML and CSS
Framer-motion and swiper knowledge
Knowledge about Google API
JWT tokens
I have discovered that I despite what I have learnt, there are so many things I improve on. One such is my creation of react-component. I found that I used to many "UseState" hooks such the react app will re-render too many times necessary. Though I found out about this a bit too late, I was able to use that discovery to make more efficient page quickly. I also learnt about how socket work recently and it was super mind-blowing how it works.
I enjoyed making the website from start to finish. Learning the modules that allow certain functionality was quite fun. Additionally, I also enjoyed the time helping others do their project as it reinforces my learning by teaching other people how it works. I also had an exciting time trying different animation styles for my website. Lastly, competing with my friend was quite enjoyable. To have a rival who is both skilled and helpful makes the journey fun.
Overall, without a project like this, I would not have discovered the loopholes in my learning and joy in creating a full stack website.
I give this a 5/5 for my rating.