AI prompts
base on Print-friendly, minimalist CV page 
# Minimalist CV
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FBartoszJarocki%2Fcv)
[](https://nextjs.org/)
[](https://www.typescriptlang.org/)
[](https://tailwindcss.com/)
[](https://pnpm.io/)
[](https://www.docker.com/)
[](https://opensource.org/licenses/MIT)
A clean and modern web app that renders a minimalist CV/Resume with a print-friendly layout.
## ⨠Features
- š **Single Config File** - Update all your resume data in [one place](./src/data/resume-data.tsx)
- šØ **Minimalist Design** - Clean, professional layout focused on content
- š± **Responsive** - Looks great on all devices, from mobile to desktop
- šØļø **Print Optimized** - Specially designed print styles for physical copies
- āØļø **Keyboard Navigation** - Press `Cmd/Ctrl + K` to quickly navigate through sections
- š **Fast Performance** - Built with Next.js 14 and optimized for Core Web Vitals
- š **Auto Layout** - Sections automatically adjust based on your content
- š **GraphQL API** - Access your resume data programmatically at `/graphql`
- šÆ **SEO Friendly** - Optimized metadata for better search visibility
- š³ **Docker Support** - Easy containerized deployment
## š ļø Tech Stack
- **Framework**: [Next.js 14](https://nextjs.org/) (App Router)
- **Language**: [TypeScript](https://www.typescriptlang.org/)
- **Styling**: [Tailwind CSS](https://tailwindcss.com/)
- **UI Components**: [shadcn/ui](https://ui.shadcn.com/) (Radix UI)
- **GraphQL**: [Apollo Server](https://www.apollographql.com/) + [TypeGraphQL](https://typegraphql.com/)
- **Package Manager**: [pnpm](https://pnpm.io/)
- **Deployment**: Optimized for [Vercel](https://vercel.com/)
## š Getting Started
### Prerequisites
- Node.js 18+
- pnpm 8+
### Installation
1. **Clone the repository**
```bash
git clone https://github.com/BartoszJarocki/cv.git
cd cv
```
2. **Install dependencies**
```bash
pnpm install
```
3. **Start the development server**
```bash
pnpm dev
```
4. **Open [http://localhost:3000](http://localhost:3000)** in your browser
5. **Customize your CV**
Edit the [src/data/resume-data.tsx](./src/data/resume-data.tsx) file to add your personal information, work experience, education, and skills.
### Available Scripts
```bash
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
```
## š Project Structure
```
src/
āāā app/ # Next.js App Router
ā āāā layout.tsx # Root layout with metadata
ā āāā page.tsx # Main resume page
āāā components/ # React components
ā āāā ui/ # shadcn/ui components
ā āāā icons/ # Icon components
āāā data/ # Resume data configuration
ā āāā resume-data.tsx
āāā images/ # Static assets
ā āāā logos/ # Company logos
āāā apollo/ # GraphQL server setup
āāā resolvers.ts
āāā type-defs.ts
```
## šØ Customization
### Resume Data
All resume content is stored in a single configuration file:
```typescript
// src/data/resume-data.tsx
export const RESUME_DATA = {
name: "Your Name",
initials: "YN",
location: "Your City, Country",
about: "Brief description",
summary: "Professional summary",
// ... more fields
}
```
### Styling
The app uses Tailwind CSS for styling. You can customize:
- Colors in `tailwind.config.js`
- Global styles in `src/app/globals.css`
- Print styles are defined separately for optimal printing
## š³ Docker Deployment
### Using Docker Compose
```bash
# Build the container
docker compose build
# Run the container
docker compose up -d
# Stop the container
docker compose down
```
### Using Docker directly
```bash
# Build the image
docker build -t cv-app .
# Run the container
docker run -p 3000:3000 cv-app
```
## š§ Configuration
### Environment Variables
No environment variables are required for basic usage. The app works out of the box!
### Print Settings
The app is optimized for printing. For best results:
- Use Chrome/Chromium for printing
- Enable "Background graphics" in print settings
- Set margins to "Default"
## š¤ Contributing
Contributions are welcome! Feel free to:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## š License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## š Acknowledgments
- [shadcn/ui](https://ui.shadcn.com/) for the beautiful UI components
- [Vercel](https://vercel.com/) for hosting and deployment
- All contributors who have helped improve this project
---
<p align="center">
Made with ā¤ļø by <a href="https://github.com/BartoszJarocki">Bartosz Jarocki</a>
</p>", Assign "at most 3 tags" to the expected json: {"id":"6377","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"