Giter Site home page Giter Site logo

portfolio's Introduction

✨ Personal Portfolio

 → version 1.2

This project is the second personal portfolio built since I've begun my coding journey. A revamped of the first one that I built by only using HTML5 and SASS.

Check the GitHub repo for the first project.

🤔 Problem

Using HTML5 and SASS alone is not practical to maintain a scalable portfolio. I need a templating or pattern system that I can utilise as reusable components in the portfolio and enforce a cohesive and consistent look to the UI.

For styling, I want to experiment using Tailwind CSS and utilise the flexibility of Styled-Components.

💡 Solution

After completing the boot camp, I initially planned to use only React.js, but I'm sold by how Next.js features a faster and more scalable app due to its server-side rendering capability. Next.js is an extension framework of the React.js library plus the added SEO friendliness and built-in router improvements. Generally, it's faster due to its server-side rendering functionality, especially for generating static websites.

The most enjoyable learning in this project is creating design patterns → building reusable components, and working on conditional rendering through data iterations for better maintainability. All the UI styling are only made possible (and faster) thanks to twin.macro, which significantly assists in blending the best of two worlds between Tailwind CSS and Styled-Components.

By no means this portfolio is entirely complete. There are many rooms for improvements. But I'm happy to release this version while at the same time working for further development and refinement.

Live 👉🏻 a-sh.cc

↓   Please check the following known issues and upcoming improvement plans (any help or issues report is much appreciated!). 

⚙️ Tech Stack & NPM Packages ( & tools )

  • Next.js v12
  • Tailwind CSS
  • Styled-Components
  • Twin.macro
  • Framer Motion
  • React-icons
  • React-easy-emoji
  • @svgr – for custom svg conversions into functional components
  • Date-fns
  • Axios
  • SendGrid Formspree for contact form integration
  • Vercel for deployment
  • Responsive Viewer chrome extension – an absolute gem!

💪🏼 Future Improvements

  • Integrating Sanity for headless CMS content management
  • Filterable Journal cards and Project cards
  • Filterable Journal cards for Mobile screens
  • Filterable Project cards (when there are more content)
  • Individual page for every Project with detailed information and more images
  • Page transitions or loading (with Framer motion) for additional features and overall UI improvements. Note: I need to upgrade the Next.js version so the "exit" page transitions work well.
  • Branded 404 error page
  • Accessibility improvements
  • Typescript integrations
  • Unit testing integrations

🛠 Known Issues

  • Due to an unknown problem, I'm currently fixing the SendGrid integrated contact form. I tried testing the form submission to the Next.js endpoints, yet despite the 200 status delivery reports, I never received any emails in the mailbox. 🥲

    • After several fix attempts, I finally used the SendGrid alternative, Formspree (as recommended by Next). The SendGrid contact form finally worked in development, and I could receive the submitted messages. However, unfortunately, it failed on production/deployment (even with neccessary environment variables already added to Vercel's settings, and redeployed). I will investigate further.
    • Special thanks to Manu Arora (manuarora700) for the kind help in trying to solve the SendGrid issues! 🙌🏼
  • I tried to animate the heights of the collapsible component on the about me section (on the home page) without any framework. Yet, it has resulted in weird unwanted extra spacing to the remaining content. I may use a third-party package to help with this additional interactivity.


This is a Next.js project bootstrapped with create-next-app. Built with Node v16.13.0, packaged with Yarn.


Crafted with care ❤ (and powered by lots of caffeine ☕️ 🍵 🫖) by a-sh. © Since 2022

portfolio's People

Contributors

a-sh-dev avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

manuarora700

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.