GithubHelp home page GithubHelp logo

leonchike / personal-site Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.11 MB

Personal resume and blog

Home Page: https://personal-site-six-vert.vercel.app

License: MIT License

JavaScript 0.14% TypeScript 27.19% CSS 0.26% MDX 72.41%

personal-site's Introduction

Personal Portfolio Website

This repository contains the code for my personal portfolio website, built using the latest web technologies. The website showcases my past projects and team experiences, providing a comprehensive overview of my skills and expertise.

Table of Contents

Features

  • Modern and responsive UI design created with Figma
  • Server-side rendering (SSR) for improved performance and SEO
  • Dynamic content loading with React Server Components and Streaming
  • TypeScript for enhanced type safety and developer productivity
  • Styling with Tailwind CSS for rapid UI development
  • MongoDB database integration using Mongoose ODM
  • Authentication and authorization with NextAuth and OAuth
  • Real-time data fetching with SWR library
  • Scheduled tasks and background processing using Cron Jobs
  • Analytics tracking with Google Analytics

Tech Stack

  • Next.js 14
  • React
  • TypeScript
  • App Router
  • Server Actions
  • Streaming
  • Server-Side Rendering (SSR)
  • Tailwind CSS
  • MongoDB
  • Mongoose
  • Figma
  • Vercel
  • Cron Jobs
  • NextAuth
  • OAuth
  • SWR Library
  • Google Analytics

Getting Started

  1. Clone the repository:
    git clone https://github.com/leonchike/personal-site.git
    
  2. Install dependencies:
    cd personal-site
    npm install
    
  3. Set up environment variables:
    • Create a .env.local file in the root directory
    • Add the required environment variables (e.g., database connection string, API keys)
  4. Run the development server:
    npm run dev
    
  5. Open your browser and visit http://localhost:3000 to see the website in action

Project Structure

๐Ÿ“ฆ personal-portfolio
 โ”ฃ ๐Ÿ“‚ components
 โ”ƒ โ”ฃ ๐Ÿ“œ Header.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œ Footer.tsx
 โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ฃ ๐Ÿ“‚ lib
 โ”ƒ โ”ฃ ๐Ÿ“œ db.ts
 โ”ƒ โ”ฃ ๐Ÿ“œ auth.ts
 โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ฃ ๐Ÿ“‚ models
 โ”ƒ โ”ฃ ๐Ÿ“œ Project.ts
 โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ฃ ๐Ÿ“‚ pages
 โ”ƒ โ”ฃ ๐Ÿ“‚ api
 โ”ƒ โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ƒ โ”ฃ ๐Ÿ“œ index.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œ projects.tsx
 โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ฃ ๐Ÿ“‚ public
 โ”ƒ โ”ฃ ๐Ÿ“‚ images
 โ”ƒ โ”— ๐Ÿ“œ ...
 โ”ฃ ๐Ÿ“‚ styles
 โ”ƒ โ”— ๐Ÿ“œ globals.css
 โ”ฃ ๐Ÿ“œ .env.local
 โ”ฃ ๐Ÿ“œ .gitignore
 โ”ฃ ๐Ÿ“œ next.config.js
 โ”ฃ ๐Ÿ“œ package.json
 โ”ฃ ๐Ÿ“œ README.md
 โ”— ๐Ÿ“œ tsconfig.json

API Documentation

The website integrates with a RESTful API to fetch and manage data. Detailed API documentation can be found in the API Docs file.

Testing

The project includes a comprehensive test suite to ensure the reliability and stability of the website. To run the tests, use the following command:

npm run test

The tests cover various aspects of the application, including components, pages, and API endpoints.

Deployment

The website is deployed using Vercel, which provides seamless integration with Next.js applications. The deployment process is automated through a CI/CD pipeline triggered by pushing changes to the main branch.

To deploy the website manually, run the following command:

npm run deploy

Optimization

Several optimization techniques have been applied to enhance the performance of the website:

  • Code splitting and lazy loading to reduce initial bundle size
  • Image optimization using Next.js built-in image component
  • Caching of frequently accessed data using SWR library
  • Minimizing the use of client-side JavaScript for faster page loads

Future Enhancements

Some planned enhancements for the website include:

  • Implementing a blog section to share technical articles and insights
  • Adding a contact form for visitors to get in touch
  • Integrating with a CMS for easier content management
  • Enhancing the project details page with more interactive elements

Contributing

Contributions to the project are welcome! If you find any bugs, have suggestions for improvements, or would like to add new features, please submit an issue or a pull request. Make sure to follow the Contributing Guidelines when contributing to the project.

License

This project is licensed under the MIT License. Feel free to use, modify, and distribute the code as per the terms of the license.


Thank you for visiting my personal portfolio website! If you have any questions or feedback, please don't hesitate to reach out.

personal-site's People

Contributors

leonchike avatar

Watchers

 avatar

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.