I find that I often lose track of the various projects and activities I do with my time so I decided to make a website as a portfolio of sorts to collect all the things I enjoy doing. I hope that it can also serve as a supplement to my internship applications. And, of course, I figure learning some basic web development is helpful in today's day and age so it'll be a good learning experience.
Googling "how to make a website" will spit out millions of results for countless different ways to make a website of varying difficulties, professionalisms, and price points. As a student who primarily just wants to play with the experience and isn't trying to sell a business or anything, the first pre-requisite was that I would only be going for free options (at least to start with). That said, I had a few options including but not limited to sites like Wordpress, sites.duke.edu, and all the other free website builders out there. I fiddled around with Sites@Duke for a bit, but my urge for tinkering/customization overcame me and after a short time I realized that if I was going to make a website, I was writing it from "scratch" (HTML + CSS).
Domain Name and Hosting
Having decided this, the next challenge became finding a way to host it for free and get a free domain name. I let the ideas turn in my head for several months while I passively "researched" (aka read articles I happened to stumble upon relating to web development). Eventually, I came to find out about a free domain name service called freenom that would supply me with a free .tk domain name (now gerrysworld.tk). Great! I had already hosted my Secret Santa website last winter on my own laptop so I figured I could whip out one of the $50 computers I had lying around that I bought on sale from NewEgg freshman year to host this website.
The caveat was that last winter I used a very temporary service called ngrok which was absolutely not fit for long-term hosting. It had all sorts of issues which you can read about in my Secret Santa page. The reason I had resorted to use it was because the ISP at my house would not allow me to open port 80 to my computer and I was too lazy to figure out better alternatives. After breaking out my $50 computer, reinstalling a fresh Arch Linux, and configuring screen-less ssh remote control stuff, I realized there was no way I was going to be able to run these on the crazy Duke internet I intended to keep these babies running. This left me with the conundrum of needing a (free) web hoster.
Without too much difficulty in searching, I was ecstatic to find out that github runs a service called Github Pages which hosts sites for free! I trust Github quite a bit, so it was pretty much decided this was the route I would go. I read that you could configure the site to with a custom domain name so that was my plan. Onward!
I'm an engineer. I don't really have an eye for design. In fact, I remember in high school when I did science fairs, I invariably got comments from judges saying my poster was too messy or cluttered or too colorful or too bland or just about anything that could possibly be wrong with the way by poster looked. How in the world was I supposed to make a good looking website??? This wasn't just like my Secret Santa website that only my friends would be seeing - this should be professional and stuff! My first instinct was to ask my older sister, who does product design & management and, as I understand, does a lot of web design for her job now.
Well she pretty much just told me it probably wasn't worth the time to design the site myself and that I should just use a premade API (Jekyll???) or template or something. Meh, I didn't feel like spending the time to learn a new API. Well I remembered someone telling me web design was easy because you can just see the code of any website to figure out how they did it. Inspiring. I decided to find a website that I liked the appearance of and design my own site around it. I decided upon a website I had stumbled upon while learning CSS: gridbyexample.com. It was nice, had nice box-y lists of pages, and just appealed to me. My process for design was basically to imagine what kind of format I wanted for a particular page and to type letter by letter the code used by gridbyexample. Then, I would delete it and rewrite it using my newly learned skills. Little by little, I made pretty good progress! And, of course, since this project is listed as in progross, I'm still working on making it better! Hopefully, as I learn more, I can customize it more to really give it my unique touches until eventually I hope it no longer resembles my template site.
Hosting and Domain... Again
Getting the hosting and domain up and running once I had the first couple pages of my site were pretty rewarding. It was just so amazing to go on my phone and pull up the page, or text my friends and family the link and tell them I made it myself from scratch. In all, I think from the point when I decided I would use github pages and freenom to the point when I had my site up and running with the first 5-6 pages, I spent maybe 24ish hours across 3 or so days - most of which re-familiarizing myself with the oddities of HTML and CSS. The web hosting and domain name configuration took maybe 2 hours total. That was leading up to the start of school, so ~mid-August 2017.
Now that I've really gotten a firm grip into the project, I decided to shell out the couple dollars to get a real ".com" domain name. I'm now accessible at gerry-chen.com!!! So exciting :))) This was mostly in preparation for a recruiting event coming up on campus.
I migrated the site to a Jekyll project and am now hosting with Google firebase. The site code is available on github and the details of the transfer to Jekyll and firebase are detailed in this blog post and this blog post respectively.
The code for the site is, firstly, served to your web browser so it's of course available, but the github repository is also available for all to see if you're interested in how I've organized the files, the history of the site, or anything else.
I'm still working on updating all the content and bit-by-bit making the site more beautiful and my own, but I feel pretty comfortable saying the site is officially done and ready to be viewed by the world. I spent way longer than I probably should have working on this site, but I learned a lot and had a great time with the coding. I'm all around very happy that I decided to go this route and I'm so much more proud of what I've made now that I made it myself. I also feel confident that I'll be able to make other sites should the need arise.
I don't think this site will ever be perfect, but it's good enough to do its job. I'm inclined to say that's enough for now. Go explore my site!