Finish project content

This commit is contained in:
Timothy Pidashev
2025-01-09 10:49:28 -08:00
parent 02290388da
commit 133c0944bc
6 changed files with 68 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,8 +0,0 @@
---
title: "Discord Bot"
description: "A discord bot template"
githubUrl: "https://github.com/timmypidashev/pycord-bot-template"
techStack: ["Python", "SQlite", "Docker"]
date: "2024-01-03"
image: "/projects/discord-bot/thumbnail.jpeg"
---

View File

@@ -7,4 +7,43 @@ date: "2024-10-03"
image: "/projects/fhccenter/thumbnail.jpeg"
---
## Overview
A private learning center website that provides information about the organization,
student registrations, a newsletter, and full admin login with administrative tools.
## Key Features
* **Server Components**: React Server Components power efficient data flow and server-side
rendering.
* **JWT Authentication**: Built using a custom authentication provider, the entire site is
secured with a jwt token schema, including refresh tokens.
* **Elegant Components**: Constructed using Shadcn and Framer motion, component animations
and feel are seamless.
## Development Highlights
Building this site was quite an interesting feat. This was my first foray into react server
components, and while they aren't my preferred method of building applications, It was a great
experience to fully dive in and make use of them. This was also my first time using Nextjs's
new app router, and coming from the page router I really liked the experience. Building out
new pages and components was just a pure flow of thought, and I found myself trying to keep up
with the ideas coming out of my head rather than coming upon development barriers or softblocks.
## Challenges & Roadblocks
One of the only real challenges I didn't anticipate was caching. In Nextjs 14, caching is handled
very poorly, and I found myself struggling to figure out workarounds when handling dynamic data
such as the newsletter on the site. Full cache routes were extremely tricky to understand, but
after reading some troubleshooting guides it was full sailing ahead.
Another tricky but fun challenge was implementing authentication using react server components.
Since I had never used them up to this point, going about setting up a jwt schema while also trying
to ensure api routes don't accidentally leak was tricky, and something I still to this day don't really
like when it comes to server components. The fact that a single line of code is responsible for separating
server from client with nothing preventing a dev from putting all those components wherever they please can
cause quite a mess, so following good file organization conventions was instrumental.
## Summary
Overall, I had a pleasant time working on [fhccenter](https://fhccenter.org). After learning all the new
features like server components and the app router, I spent more time messing around with css styling and
getting the site to look exactly the way I wanted it rather than debugging silly mistakes, which was
refreshing coming from other frameworks.

View File

@@ -43,7 +43,7 @@ resources to learn and understand the inner workings of a graphics renderer. Res
[Learn C++ Website](https://www.learncpp.com/learn-cpp-site-index/), and [OpenGL Tutorials](https://www.opengl.org/sdk/docs/tutorials/)
helped me tremendously here.
## Challenges and Roadblocks
## Challenges & Roadblocks
Some of the biggest challenges I faced was overcoming the knowledge barrier I had on the inner workings
of graphics rendering and low level programming overall. Thankfuly, being stubborn and obsessed can
sometimes help, and in this case after numerous attempts, I began meticoulouly learning every aspect

View File

@@ -161,7 +161,7 @@ Afterwards, the backend will respond back with a response that our frontend
will also validate. This allows for a complete multi-directional
request -> response type validation!
## Challenges and Roadblocks
## Challenges & Roadblocks
For the most part, there were really no challenges, say for some hiccups here and there.
Probably the most painful parts were creating unit tests for the frontend, and scraping
Facebook for a total of 1,384 posts for my client, who wanted the posts imported over.

View File

@@ -7,3 +7,30 @@ techStack: ["Astro", "Typescript", "MDX"]
date: "2024-10-03"
image: "/projects/web/thumbnail.jpeg"
---
## Overview
A portfolio website and resume for yours truly.
## Development Highlights
Building the second version of my website was a dream. This was my first time using Astro,
and wow, just wow! For starters, The entire site is ~1,500 LOC (excluding MDX). That is
small for the amount of things I was able to accomplish. That aside, Astro's simplicity is
unmatched. Coming from React-based frameworks, the ability to just import react components
and have them work out of the box was unexpected. And the astro layout files! They are so
easy to look at, it just turns on some kind of code ocd within my head. I can't stop admiring
it. All this to say, Astro was the perfect choice for my website.
## Challenges & Roadblocks
Although the development process was extremely simple and fun, there really were no challenges,
which allowed me to express my creativity to my fullest. Building out Conway's game of life as
a canvas background simulation wasn't the first idea I had, and that whole endeavour started as a
growing vines simulation similar to that of the old Poptropica flash game loading screens, all the way
to a full fishtank simulation like Asciiquarium. But, they just never felt final to me, and this simulation
was simple to implement and most importantly very lightweight compared to the other simulations I was
working on.
## Summary
The result is deeply satisfying - a personal website that authentically reflects my style.
It captures my minimalist desktop aesthetic, down to the font choices and clean layout.
After many hours of careful work, I am very proud of what I have created for myself and hope
the reader agrees :)