After months of ideation and development, I'm excited to introduce the latest iteration of my personal website, built with React and Next.js. This 4th rebuild represents a continuous evolution of my online presence, with a focus on showcasing my data science skills and publishing content I'm passionate about. While this may not be the final version, my goal is for it to be a flexible, easily updated foundation for future expansions.
If you like to know more, feel free to follow me from LinkedIn!! or search Sunchuangyu Huang from Google :D
The site is built using the following technologies:
- Next.js: A React framework offering features like server-side rendering and static site generation, enhancing SEO and performance.
- React: A JavaScript library for building user interfaces with reusable components.
- TailwindCSS: A utility-first CSS framework for creating custom designs without leaving your HTML.
- Additional Libraries:
react-icons,bootstrap,mui,react-awesome-reveal, etc., which provide ready-to-use components and animations. - Database: use MongoDB free tier to store data. Data base is hosted on MongoDB Atlas Sydney server.
- For website polling, follow documentation at app.earser.io
- For project planner, refer to projectplanner.ai
To get the project up and running on your local machine, follow these steps:
Prerequisites:
- Ensure you have
node.jsandnpminstalled.
Installation:
- Clone the repository:
git clone https://github.com/rNLKJA/rin.contact.git - Navigate to the project directory:
cd rin.contact - Install dependencies:
npm install
Local Development:
- Start the development server: npm run dev
- Visit
http://localhost:3000in your browser to view the site.
rin.contact/
├── app/ # App configuration (e.g., next.config.js, tailwind.config.js)
├── components/ # Reusable UI components (e.g., Navbar, Footer)
├── pages/ # Page components (e.g., index.js, about.js)
├── public/ # Static files like images and favicon
└── styles/ # Global and individual stylesheets
The project structure is pretty simple, the app folder contains the configuration of the app, e.g. next.config.js, tailwind.config.js, etc. The components folder contains all the components used in the website, e.g. Navbar, Footer, HeroSection, etc. The pages folder contains all the pages, e.g. index.js, about.js, etc. The public folder contains all the static files, e.g. favicon.ico, heroSection.png, etc. The styles folder contains all the stylesheets, e.g. global.css, index.css, etc.
To add a new page, simply create a new file in pages folder, e.g. contact.js, the new page will be automatically generated and access via http://localhost:3000/contact. To add a new component, simply create a new file in components folder, e.g. Contact.js, then you can import it in any page you want.
The site is deployed via GitHub Pages with automated deployment through GitHub Actions. If you encounter a 404 error or other deployment issues, consider the following:
- 404 Error: Ensure the
next.config.jsis correctly configured, especially if next export has been deprecated. - Initial Setup: If problems persist, initializing a fresh
Next.jsapp with the recommended structure might help. - GitHub Pages Configuration: Ensure your repository settings correctly point to the build output folder.
- Hosting: Migrate to Vercel for improved performance and developer experience.
- TypeScript: Convert .jsx files to .tsx for enhanced code quality and maintainability.
- Database Integration: Incorporate a database like MongoDB for dynamic content and use
Next.jsAPI routes for server-side operations. - AI Gallery: Create a gallery featuring AI-generated images, with prompts and details about the creation process.
- __tests__: Add unit tests for components and pages using
JestandReact Testing Library. - ...
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature) - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is under a specific license. Please review the LICENSE file in the repository for more information. If you plan to use any content commercially, ensure compliance with all relevant licenses.
For any further queries or suggestions, please reach out to me at GitHub @rNLKJA or submit a quest via Contact Form.
2023-12-30 @rNLKJA
