Skip to content

Commit f507cc1

Browse files
authored
Merge pull request #22 from codad5/codad5-dev
[fix] and [refactor]
2 parents 6f68539 + 497a4c4 commit f507cc1

File tree

9 files changed

+188
-18
lines changed

9 files changed

+188
-18
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# QuickCv
2-
URL : [quickcv](https://quickcv.codad5.me/)
2+
URL : [quickcv.codad5.me](https://quickcv.codad5.me/)
33

44
## Description
55
QuickCv is a web application that allows users to create a resume in a few minutes with the help of AI, the user can create a high scoring ATS resume in a few minutes.
@@ -27,6 +27,7 @@ QuickCv is a web application that allows users to create a resume in a few minut
2727
- [x] User can regenerate the resume if they are not satisfied
2828
- [x] User can see previous resumes they have generated
2929
- [x] Auto save feature locally
30+
- [x] Remembers user details (all data is stored locally)
3031
- [x] No need to sign up to use the app
3132

3233
## Technologies Used

app/about/page.tsx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { Inter } from "next/font/google";
2+
3+
const inter = Inter({ subsets: ["latin"] });
4+
5+
export default function About() {
6+
return (
7+
<main className="flex min-h-[200svh] sm:min-h-screen justify-center items-start px-4 py-2 gap-4 pb-4">
8+
<section className="flex flex-col justify-center items-start max-w-2xl mx-auto">
9+
<h1 className="text-4xl font-bold mb-4">About QuickCv</h1>
10+
<p className="text-lg mb-6">
11+
QuickCv is your go-to solution for creating professional, ATS-friendly
12+
resumes quickly and easily. We believe that everyone deserves a chance
13+
to present their skills and experiences in the best possible way.
14+
</p>
15+
<h2 className="text-2xl font-semibold mb-2">Our Mission</h2>
16+
<p className="mb-6">
17+
Our mission is to empower job seekers by providing an intuitive and
18+
accessible platform to build impressive resumes. We strive to reduce
19+
the stress associated with job applications, allowing users to focus
20+
on what matters most—landing their dream job!
21+
</p>
22+
<h2 className="text-2xl font-semibold mb-2">Why Choose Us?</h2>
23+
<ul className="list-disc list-inside mb-6">
24+
<li>User-friendly interface</li>
25+
<li>AI-driven suggestions for content</li>
26+
<li>Responsive design for optimal viewing on any device</li>
27+
<li>Safe and secure data handling</li>
28+
<li>Commitment to continuous improvement based on user feedback</li>
29+
</ul>
30+
<h2 className="text-2xl font-semibold mb-2">Get in Touch</h2>
31+
<p>
32+
If you have any questions or feedback, feel free to contact us via our{" "}
33+
<a href="/contact" className="text-green-500 hover:underline">
34+
Contact Page
35+
</a>
36+
.
37+
</p>
38+
</section>
39+
</main>
40+
);
41+
}

app/contact/page.tsx

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// app/contact/page.js
2+
import { Inter } from "next/font/google";
3+
4+
const inter = Inter({ subsets: ["latin"] });
5+
6+
export default function Contact() {
7+
return (
8+
<main className="flex min-h-[200svh] sm:min-h-screen justify-center items-start px-4 py-2 gap-4 pb-4">
9+
<section className="flex flex-col justify-center items-start max-w-2xl mx-auto">
10+
<h1 className="text-4xl font-bold mb-4">Contact Us</h1>
11+
<p className="text-lg mb-4">
12+
If you have any questions or would like to get in touch, feel free to
13+
reach out through the following channels:
14+
</p>
15+
<ul className="list-disc list-inside mb-6">
16+
<li>
17+
<strong>Email:</strong>{" "}
18+
<a
19+
href="mailto:aniezeofor.mic@gmail.com"
20+
className="text-green-500 hover:underline"
21+
>
22+
aniezeofor.mic@gmail.com
23+
</a>
24+
</li>
25+
<li>
26+
<strong>Alternative Email:</strong>{" "}
27+
<a
28+
href="mailto:hi@codad5.me"
29+
className="text-green-500 hover:underline"
30+
>
31+
hi@codad5.me
32+
</a>
33+
</li>
34+
<li>
35+
<strong>Website:</strong>{" "}
36+
<a
37+
href="https://codad5.me"
38+
target="_blank"
39+
rel="noopener noreferrer"
40+
className="text-green-500 hover:underline"
41+
>
42+
codad5.me
43+
</a>
44+
</li>
45+
<li>
46+
<strong>GitHub:</strong>{" "}
47+
<a
48+
href="https://github.com/codad5"
49+
target="_blank"
50+
rel="noopener noreferrer"
51+
className="text-green-500 hover:underline"
52+
>
53+
github.com/codad5
54+
</a>
55+
</li>
56+
<li>
57+
<strong>LinkedIn:</strong>{" "}
58+
<a
59+
href="https://www.linkedin.com/in/your-linkedin-profile"
60+
target="_blank"
61+
rel="noopener noreferrer"
62+
className="text-green-500 hover:underline"
63+
>
64+
Your LinkedIn Profile
65+
</a>
66+
</li>
67+
</ul>
68+
<p>We look forward to hearing from you!</p>
69+
</section>
70+
</main>
71+
);
72+
}

app/layout.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Inter } from "next/font/google";
33
import "./globals.css";
44
import { Analytics } from "@vercel/analytics/react"
55
import NotificationComponent from "@/components/commons/Notification";
6+
import { Next13NProgress, Link } from "nextjs13-progress";
67

78
const inter = Inter({ subsets: ["latin"] });
89

@@ -34,9 +35,11 @@ export default function RootLayout({
3435
return (
3536
<html lang="en">
3637
<body className={inter.className}>
38+
{/* light green */}
39+
<Next13NProgress color="#10B981" height={5} />
3740
<header className="w-full shadow-md flex items-center justify-between px-4 py-6">
3841
<h1 className="text-lg font-semibold">
39-
QuickCv
42+
<Link href="/">QuickCv</Link>
4043
{/* a credit with link to my github something that is small and say by codad5 then with link to my portfolio codad5.me */}
4144
<span className="text-sm ml-2">
4245
by{" "}
@@ -62,10 +65,10 @@ export default function RootLayout({
6265
<nav>
6366
<ul className="flex space-x-4">
6467
<li>
65-
<a href="/about">About</a>
68+
<Link href="/about">About</Link>
6669
</li>
6770
<li>
68-
<a href="/contact">Contact</a>
71+
<Link href="/contact">Contact</Link>
6972
</li>
7073
</ul>
7174
</nav>

app/page.tsx

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
1+
import { Inter } from "next/font/google";
2+
import { Link } from "nextjs13-progress";
13

2-
import ResumeBuilder from '../components/resume-builder/ResumeBuilder';
3-
4-
4+
const inter = Inter({ subsets: ["latin"] });
55

66
export default function Home() {
7-
8-
// if path is not /resume-generator redirect to /resume-generator
9-
107
return (
11-
<main className="flex min-h-[200svh] sm:min-h-screen justify-start sm:justify-center px-4 py-2 gap-4 pb-4 flex-col sm:flex-row">
12-
<ResumeBuilder />
8+
<main className="flex min-h-[200svh] sm:min-h-screen justify-start sm:justify-center px-4 py-2 gap-4 pb-4 flex-col sm:flex-row">
9+
<section className="flex flex-col justify-center items-start max-w-2xl mx-auto">
10+
<h1 className="text-4xl font-bold mb-4">Welcome to QuickCv</h1>
11+
<p className="text-lg mb-6">
12+
QuickCv is a simple AI-powered CV builder designed to help you create
13+
an ATS-friendly resume in minutes. Whether you're a fresh graduate or
14+
a seasoned professional, our tool makes it easy to showcase your
15+
skills and experience.
16+
</p>
17+
<h2 className="text-2xl font-semibold mb-2">Features:</h2>
18+
<ul className="list-disc list-inside mb-6">
19+
<li>Create a resume in just a few clicks</li>
20+
<li>ATS-friendly design for better job application success</li>
21+
<li>Auto-save feature to keep your progress</li>
22+
<li>
23+
Multiple sections for personal information, education, work
24+
experience, and more
25+
</li>
26+
<li>Print and download options in PDF format</li>
27+
</ul>
28+
<h2 className="text-2xl font-semibold mb-2">Why Choose QuickCv?</h2>
29+
<p className="mb-6">
30+
Our user-friendly interface and AI assistance make resume building
31+
effortless, allowing you to focus on what truly matters - landing your
32+
dream job!
33+
</p>
34+
<Link
35+
href="/resume-generator"
36+
className="bg-green-500 text-white px-4 py-2 rounded-md hover:bg-green-600 transition duration-200"
37+
>
38+
Start Building Your Resume
39+
</Link>
40+
</section>
1341
</main>
1442
);
1543
}

components/resume-builder/ResumeBuilder.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export default function ResumeBuilder() {
141141
console.error(error);
142142
newNotification((error as Error).message, "error");
143143
}
144-
}, [retryCount]);
144+
}, [retryCount, resumeInfo]);
145145

146146
const generateResumeContent = async () => {
147147
try {

next.config.mjs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ const nextConfig = {
77
},
88
async redirects() {
99
return [
10-
{
11-
source: '/',
12-
destination: '/resume-generator',
13-
permanent: true,
14-
},
10+
1511
]
1612
}
1713
};

package-lock.json

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"highlight.js": "^11.10.0",
1818
"iconsax-react": "^0.0.8",
1919
"next": "^14.2.12",
20+
"nextjs13-progress": "^1.3.3",
2021
"react": "^18",
2122
"react-accessible-accordion": "^5.0.0",
2223
"react-dom": "^18",

0 commit comments

Comments
 (0)