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.
- 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
- 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)
To install the project, follow these steps:
-
Clone the project:
git clone <project-url>
-
Install the dependencies:
npm install
-
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
-
Run the migrations:
npx prisma migrate dev
-
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
```
- 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
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.
- BartoszJarocki for the original project
This project is licensed under the MIT License. See the LICENSE file for details.