Skip to content

Personal blog and portfolio website built with Next.js, Prisma, and Tailwind CSS.

Notifications You must be signed in to change notification settings

boleknowak/piotrdoniak.com

Repository files navigation

LinkedIn WWW


piotrdoniak.com

Personal blog and portfolio website.
Check out the page

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

About The Project

Homepage screenshot

This project is designed to serve my portfolio/blog page hosted on my website piotrdoniak.com. I want to share my thoughts, projects, and networking activities with others. With this project, I can showcase my professional and personal accomplishments to potential employers, clients, and collaborators.

Overall, this portfolio/blog page project represents my commitment to showcasing my skills, sharing my experiences, and building my network.

(back to top)

Built With

Vercel Next Tailwind Prisma

(back to top)

Getting Started

You can clone this repository and run it locally. To get a local copy up and running follow these simple steps.

Setup your environment

Clone the repository and install the dependencies.

git clone https://github.com/boleknowak/piotrdoniak.com.git

cd piotrdoniak.com

npm install
# or
yarn install
# or
pnpm install

Set up the database

This project uses PostgreSQL as its database. You can set up a local database or use a remote one. You will need DATABASE_URL environment variable to connect to the database.

Move .env.example to .env and fill in the variables.

mv .env.example .env

Example .env file:

# Application
APP_URL=http://localhost:3000
NEXT_PUBLIC_ANALYTICS_ID=GA-XXXXXXXXXX
NEXT_PUBLIC_TINYMCE_API_KEY=
NEXT_PUBLIC_FILE_UPLOAD_URL=
NEXT_PUBLIC_FILE_DOWNLOAD_URL=
NEXT_PUBLIC_FILE_NAME=
DISCORD_WEBHOOK_URL=

# Auth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET="<very-secret-string>"
GOOGLE_ID=
GOOGLE_SECRET=

# Database
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=blog
DB_USERNAME=your-name
DB_PASSWORD=your-super-secret-password
DATABASE_URL="postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}?schema=public"

Note: DATABASE_URL: The full database connection URL. This is required and is used by prisma.

Prisma Setup

This project uses Prisma as its ORM. You can find more information about Prisma here.

Use the following command to generate the Prisma client:

npx prisma migrate dev

View the database diagram here.

Getting Google OAuth API Credentials

  1. Visit the Google Cloud Console
  2. Go to the OAuth consent screen tab, fill first step leaving the rest blank and click Save. This will create a project for you.
  3. Now Publish your OAuth consent screen App.
  4. Go to the Credentials tab and click Create Credentials -> OAuth Client ID.
    • Choose Web Application
    • Add http://localhost:3000 to the Authorized JavaScript origins
    • Add http://localhost:3000/api/auth/callback/google to the Authorized redirect URIs
    • Click Create
  5. Copy the Client ID and Client Secret and paste them into the .env file.
GOOGLE_ID=your_client_id
GOOGLE_SECRET=your_client_secret

Run the development server

npm run dev
# or
yarn dev
# or
pnpm dev

Open http://localhost:3000 with your browser to see the result.

(back to top)

Roadmap

  • Add Posts Section
  • Add Calendar functionality
  • Add Newsletter

(back to top)

Contributing

If you have a suggestion that would make this better, feel free to fork the repo and create a pull request. You can also simply open an issue.

(back to top)

License

Distributed under the MIT License.

(back to top)

Contact

Piotr Doniak - hello@piotrdoniak.com

(back to top)

Acknowledgments

(back to top)

About

Personal blog and portfolio website built with Next.js, Prisma, and Tailwind CSS.

Topics

Resources

Stars

Watchers

Forks