Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

216 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Personal Website

Product Name Screen Shot

My personal portfolio, project library, and blog.
Explore the docs »

Visit Site · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

This repo is home to the ReactJS frontend of my personal website 2.0. I Launched it towards the end of October 2022. It relies on the backend, a Node-Express REST API I've nicknamed Project Pith, to process content from 3rd party APIs like Notion, and Twitter to provide content for the site. If you're reading this in October or November, the blog section will still be mostly void of content, I hope to add some delightful, informative content that will provide context for my project and protfolio work, if I do it right it'll even be a little entertaining. Thanks for visiting!

Basic diagram of the current site:

(back to top)

Built With

(back to top)

Features

The site contains several interesting or unique features.

Notion API

The Notion integration involves features written in both React and Node. The React API I built handles requesting and parsing a JSON object containing all the data for a blog post. The data comes from my Notion account, so the system is basically packaging a blog post I've written on my desktop Notion app, passing it to the server and database so that the client can request the data and transform it back into JSX. Each blog posts is received by the client as an array of objects. my API parses this array, checking the type of each object in the array. It then passes the object into a corresponding component. For example paragraph object is passed to a Paragraph component. This allows me to implement features incrementally. Currently, I can post blogs with simple formatting requirements without the need to replciate every feature in Notion. It also allows me to organize and encapsulate the functionality required for each block. As of November, I've added Headings, Paragraphs, Code Blocks, Links, and Images. Next, I would like to add Lists, and improve the formatting.

Project Library

This section is more for the fun projects. It's also a bit of a ReactJS workshop. Some of the items you'll see here were originally built in React, others I built in vanilla JS, and have converted. I'd like to keep adding to it. It's a lot of fun building out these component/mini-app projects, and displaying them.

  • Conway's Game of Life: My GoL implementation I added a powerful set of controls that allows you to run a traditional game, or clear the board and place premade patterns discovered by researchers over the years.

  • Productiv: A fun little react themed todo app. Complete with a AJAX powered quote generator. This project was an excellent learning lesson in form control and state management in React.

  • Whittle: my first ever, original app. It's a Wordle assist program that shows you a list possible words based on your existing guesses. Getting the UX for this just right was been tougher than I expected. This required me to write some efficient sorting algos to filter the list opf about 8500 5 letter words in the english language.

  • Lights Out!: My first practice building a game board in react. It's a fairly simple app that makes for an fairly amusing game. Not that great, but I learned how to hold state and render a game board throughout the course of a game.

  • I've a backlog of projects I need to rebuild in react, and I'd love to add some novel stuff here as well.

Roadmap

Many of these features were left out of the initial build simply because the site doesn't yet have enough content to warrant great search, tagging, or pagination.

  • Homescreen design
  • Add project menu
    • search
    • tags/categories
  • Blog Features
    • Improve Pagination
    • Improve Search
    • Tweet components to avoid embedding
    • Better Tags
    • More block types
    • Comments?

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Caleb Wood - @calebthewood or calebwood.cs@gmail.com.com

Project Link: https://github.com/calebthewood/personalSiteV2

Live Site Link: https://www.calebwood.dev/

(back to top)

Acknowledgments

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages