Skip to content

Latest commit

 

History

History
125 lines (93 loc) · 3.48 KB

File metadata and controls

125 lines (93 loc) · 3.48 KB

Minimalist CV with a User-Friendly Layout

This project is a fork of cv, originally licensed under the MIT License by @BartoszJarocki. See the ORIGINAL_LICENSE.txt for details.

I have converted the project to be more user-friendly and added several features. This project aims to provide a minimalist CV that is easy to set up and use, even for non-developers.

Table of Contents

Features

  • Authenticated users using OAuth (Google and GitHub)
  • Fully responsive design
  • Three pages: Personal Details, Manage Content, and Preview
    • Personal Details: Users can add their personal details, experience, education, and projects.
    • Manage Content: Users can add or remove experience, education, and projects.
    • Preview: Users can preview their CV.
    • preview can be accessed via a wildcard subdomain (e.g., yourname.cvhub.live)
  • Wildcard subdomain for each user
  • Users can download their CV as a PDF

Tech Stack

  • Next.js
  • TypeScript
  • Tailwind CSS
  • next-auth
  • Prisma with PostgreSQL
  • Vercel (for deployment)
  • Cloudinary (for image upload)
  • Aiven (for PostgreSQL database)
  • Cloudflare (for DNS, SSL, and wildcard subdomain)
  • GitHub Actions (for CI/CD)

Installation

To install the project, follow these steps:

  1. Clone the project:

    git clone <project-url>
  2. Install the dependencies:

    npm install
  3. Create a .env.local file in the root directory and add the following environment variables:

    DATABASE_URL=postgres://username:password@host:port/dbname
    
    # Cloudinary credentials
    CLOUDINARY_CLOUD_NAME=<cloudinary_cloud_name>
    CLOUDINARY_API_KEY=<cloudinary_api_key>
    CLOUDINARY_API_SECRET=<cloudinary_api_secret>
    
    # Auth credentials
    NEXTAUTH_SECRET=<nextauth_secret>
    GOOGLE_CLIENT_ID=<google_client_id>
    GOOGLE_CLIENT_SECRET=<google_client_secret>
    GITHUB_CLIENT_ID=<github_client_id>
    GITHUB_CLIENT_SECRET=<github_client_secret>
    NEXTAUTH_URL=http://localhost:3000
    NODE_ENV=development
  4. Run the migrations:

    npx prisma migrate dev
  5. Run the project:

    npm run dev

If you have Docker installed, you can use the docker-compose.yaml to create a PostgreSQL database:

```bash
docker-compose start
```

TODO

  • Setup next-auth
  • Setup Prisma with PostgreSQL
  • Setup Cloudinary
  • Setup Aiven
  • Setup Cloudflare
  • Setup GitHub Actions
  • Add wildcard subdomain
  • Add personal details page
  • Add buttons to add Experience, Education, and Projects on personal details page
  • Add manage content page
  • Add/remove buttons Experience, Education, and Projects on manage content page
  • Add edit buttons Experience, Education, and Projects on manage content page
  • Add preview page
  • Add download as PDF button (already exists)
  • Add more themes
  • Add unit tests

Contributing

If you want to contribute to this project, you can fork the project and create a pull request. I will review the pull request and merge it if it is good.

Credits

License

This project is licensed under the MIT License. See the LICENSE file for details.