Sendcv is a web app to explore jobs and create a beautiful profiles with your projects, social networks and experience. Inspired by read.cv ✨.
- Explore & save offers using Infojobs API.
- Create a beautiful profile with your description, experience, projects & social networks.
- CMDK to navigate between pages.
- Light/dark theme.
- Search job offers / users from the CMDK modal (route).
- Button to change the light/dark mode on the main sidebar. Server/client side rendering (route).
- Sometimes it does not show the tooltip in the sidebar (route).
This is a Next.js project bootstrapped with create-next-app
:
- Next.js 13 /app directory + Typescript - The React Framework for the Web.
- Prisma - Next-generation Node.js and TypeScript ORM.
- Next-Auth - Authentication for Next.js.
- Next-Themes - Perfect Next.js dark mode in 2 lines of code.
- @t3-oss/env-nextjs - Framework agnostic validation for type-safe environment variables.
- Zod - TypeScript-first schema validation with static type inference.
- React Hook Form - Performant, flexible and extensible forms with easy-to-use validation.
- Prettier + prettier-plugin-tailwindcss - A Prettier plugin for Tailwind CSS that automatically sorts classes based on our recommended class order.
- Tailwind CSS + Tailwind Merge + clsx - Merge Tailwind CSS classes without style conflicts.
- shadcn/ui components using Radix UI + Class Variance Authority - Beautifully designed components that you can copy and paste into your apps.
- Lucide icons - Beautiful & consistent icon toolkit made by the community.
- Sonner - An opinionated toast component for React.
To get a local copy up and running, please follow these simple steps:
Recommended extensions for Visual Studio Code:
Setup development server:
- Clone or fork the repository:
[email protected]:pheralb/sendcv.git
- Go to the project folder:
cd sendcv
- Install the dependencies with your favorite package manager:
# with npm:
npm install
# with pnpm:
pnpm install
pnpm postinstall
# with yarn:
yarn install
Setup environment variables:
Create a .env
file in the root folder of the project with the following variables:
# Prisma:
DATABASE_URL=""
# Next Auth:
NEXTAUTH_SECRET="" // Generate a random string.
NEXTAUTH_URL="" // https://localhost:3000/
# Github OAuth Provider:
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
# Infojobs Credentials:
INFOJOBS_CLIENT_ID=""
INFOJOBS_CLIENT_SECRET=""
INFOJOBS_TOKEN=""
DATABASE_URL
- Planetscale docs.GITHUB_CLIENT_ID
&GITHUB_CLIENT_SECRET
- Github OAuth docs.INFOJOBS_CLIENT_ID
&INFOJOBS_CLIENT_SECRET
- Create an app on Infojobs.INFOJOBS_TOKEN
- In the client credentials section, enter the INFOJOBS_CLIENT_ID and the INFOJOBS_CLIENT_SECRET.
Open development server:
- Run to open the Next.js development server:
# with npm:
npm run dev
# with pnpm:
pnpm dev
# with yarn:
yarn dev
- Run to open Prisma Studio:
# with npm:
npm run studio
# with pnpm:
pnpm studio
# with yarn:
yarn studio
- Distributed under the Apache License 2.0. See
LICENSE
.