GithubHelp home page GithubHelp logo

NextJS Portfolio Template

Portfolio website template!
View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Deployment
  5. Contributing
  6. License

About The Project

Making a Portfolio website from scratch can be a tedious process. This repository solves that problem. How? Well, it is a easy-to-use portfolio template! You can use it by following a few simple instructions given below. Feel free to suggest changes and features too!

Sections Available

✔️ Landing Page - greeting
✔️ Work section
✔️ Capabilities
✔️ Education
✔️ About
✔️ Projects
✔️ Work Experience
✔️ Blogs - Custom, Medium and DevTo support
✔️ Contact me
✔️ Socials

Built With

🔧 NextJS
🔧 Chakra UI

Demos

To view a demo, click here
To view a live example, click here

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

npm - Latest version of npm works the best with this project. Run the following command to install it.

npm -v //checks npm version
npm install npm@latest -g //installs latest npm version

Installation

  1. Clone the repo
    git clone https://github.com/AsavariA/nextjs-portfolio-template.git
  2. Install NPM packages
    npm install

Usage

These are instructions to use the project once you have cloned it. Follow them step by step for the best experience. Comments are mentioned in the files as guides.

User Info

Go to the file userinfo.js inside the Constants folder. Fill up this file like you are filling up a form.

  1. logoText
  2. contact - email, phone(leave blank if not willing to use), countrycode
  3. socials - follow the json format
  4. greeting - title, subtitle
  5. capabilities - follow the json format
  6. about - content, resume link ( can be drive link etc )
  7. education - follow the json format
  8. experience - follow the json format
  9. blogs - if you want this section in your website, set it true, otherwise false. If true, follow the instructions in blog section
  10. projects - go to Constants > projects.js and follow the json format. Import images as mentioned in the imports.
  11. headings - you can customise all the headings in the template with this.
  12. ctas - you can customise all the ctaTexts in the template with this.

Blogs

This instruction set is only applicable if blogs are set to visible. The blogs section provides 3 kinds of support. Custom blogs, importing medium blogs, or importing devto blogs.

  1. Go to Constants > blogs.js
  2. You will be able to see 3 different exports. Choose the one you want and comment out the others.
  3. If your choice is Custom blogs, fill in the details as shown in json format.
  4. If your choice is Medium blogs, then uncomment the medium blogs export down below and fill in your medium username.
  5. Now move to Components > Work.js.
  6. You will see three commented out sections each with a useEffect and heading MEDIUM BLOGS SUPPORT
  7. Uncomment the useEffect in the section you want and comment the other two out.
  8. You are set to import your medium blogs now!
  9. Follow the steps from 4 - 8 but with DevTo details if your choice is DevTo blogs.

Setting up Images

There are only 3 images you need to set up externally. These images have to have a particular name and format and location.

  1. Landing Page Background Image
    • name - background
    • type - .jpg
    • filename - background.jpg
    • location - root > styles
  2. About Section Background Image
    • name - about
    • type - .jpg
    • filename - about.jpg
    • location - root > styles
  3. Favicon Image
    • name - favicon
    • type - .jpg
    • filename - favicon.jpg
    • location - root > public

Setting up Themes

Go to the file theme.js inside the folder Constants. You can change the colors as per your wish or leave the theme as it is. Make sure to keep all the fields intact because skipping any field can lead to errors.

Setting up Contact Form

For this step, you will need to create a new google account which will send you the form data. Need for a new account - well, it is advisable to use this new account only for this purpose so as to prevent giving this template access to your personal emails ( which are on your original email account ). \

Once you have made your account, make sure you have selected that account and go to this link. Allow the access.\

Now go to the test.env file. Rename this file to only .env
If your project is on github, please make sure to exclude this file from github ( put it in gitignore ) since it contains private / environmental variables.

//type in all data without the < and > signs.

PASSWORD = <sender-mail-password> //password of newly created account
SENDER = <sender-mail> //email address of newly created account
TO = <reciever-mail> //email address of your personal account (which will be reciever of data in this case)

Contact form is now set up!

Deployment

To check if your website is running the way you wish, run the following command to start it locally on localhost:3000
npm run dev

To deploy your portfolio, you can use any of the following ways.

  • Vercel - this is the most advisable platform to deploy your nextjs applications because they are the building company and provide the best support for all nextjs websites.
  • Netlify - Use the exclusive nextjs support on netlify to deploy your site.

Both of these can be used directly through github and therefore any new changes and updates to your project repository will be updated immediately in the deployment. There are other ways and platforms to deploy your portfolio too.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  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

License

Distributed under the MIT License.

Leandro Barbosa's Projects

ai-auto-video-generator icon ai-auto-video-generator

An AI-powered storytelling video generator that takes user input as a story prompt, generates a story using OpenAI's GPT-3, creates images using OpenAI's DALL-E, adds voiceover using ElevenLabs API, and combines the elements into a video.

angular-styleguide icon angular-styleguide

Angular Style Guide: A starting point for Angular development teams to provide consistency through good practices.

ansible-django-stack icon ansible-django-stack

Ansible Playbook for setting up a Django app with Nginx, Gunicorn, PostgreSQL, Celery, RabbitMQ, Supervisor, Virtualenv, and Memcached. A Vagrantfile for provisioning a VirtualBox virtual machine is included as well.

apollo-link icon apollo-link

:link: Interface for fetching and modifying control flow of GraphQL requests

asynq icon asynq

Asynq: simple, reliable, and efficient distributed task queues for Go

auto-gpt icon auto-gpt

An experimental open-source attempt to make GPT-4 fully autonomous.

awesome-remote-job icon awesome-remote-job

A curated list of awesome remote jobs and resources. Inspired by https://github.com/vinta/awesome-python

aws-eks-accelerator-for-terraform icon aws-eks-accelerator-for-terraform

The AWS EKS Accelerator for Terraform is a framework designed to help deploy and operate secure multi-account, multi-region AWS environments. The power of the solution is the configuration file which enables the users to provide a unique terraform state for each cluster and manage multiple clusters from one repository. This code base allows users to deploy EKS add-ons using Helm charts.

boto3-sample icon boto3-sample

Boto 3 sample application using Amazon Elastic Transcoder, S3, SNS, SQS, and AWS IAM.

c3 icon c3

A D3-based reusable chart library

chatbox icon chatbox

Hardware chatbot project which uses raspberry pi, arduino and openai APIs

clappr icon clappr

:clapper: An extensible media player for the web

cloudtranscode icon cloudtranscode

Distributed videos and images encoding/transcoding using Amazon Web Services, FFMpeg and ImageMagic

correios-api-py icon correios-api-py

API Python para obter informações de encomendas/Sedex dos Correios.

courses icon courses

Course materials for the Data Science Specialization: https://www.coursera.org/specialization/jhudatascience/1

d3 icon d3

A JavaScript visualization library for HTML and SVG.

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.