Skip to content

Commit 10ff466

Browse files
committed
more projects.
1 parent f35a023 commit 10ff466

File tree

12 files changed

+151
-93
lines changed

12 files changed

+151
-93
lines changed

public/data/Projects.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
505 KB
Binary file not shown.
290 KB
Binary file not shown.

public/projects/project-one.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Project One
3+
link: https://example.com/project-one
4+
pinned: true
5+
isActive: true
6+
technologies: [React, Node.js, MongoDB]
7+
---
8+
9+
This is a short description of Project One. It involved developing a robust web application using modern React frameworks and a highly scalable backend.
10+
11+
---
12+
13+
This is the full content of Project One. The goal was to create an intuitive user experience with dynamic content loading and real-time updates.
14+
15+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
16+
17+
![Local Image 1](/images/projects/project-one-image-1.avif)
18+
19+
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus auctor mattis. Aliquam dictum egestas nulla. Curabitur a orci a ut laoreet. Nullam gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus auctor mattis. Aliquam dictum egestas nulla. Curabitur a orci a ut laoreet.
20+
21+
![Local Image 2](/images/projects/project-one-image-2.avif)
22+
23+
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

public/projects/project-three.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Project Three
3+
link: https://example.com/project-three
4+
pinned: false
5+
isActive: true
6+
technologies: [JavaScript, HTML, CSS]
7+
---
8+
9+
This is a short description of Project Three. A simple frontend experiment with animations.
10+
11+
---
12+
13+
This is the full content of Project Three. It explores various CSS and JavaScript animation techniques.

public/projects/project-two.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Project Two
3+
link: https://example.com/project-two
4+
pinned: true
5+
isActive: true
6+
technologies: [Python, Django, PostgreSQL]
7+
---
8+
9+
This is a short description of Project Two. It's a backend-focused project for data processing and API development.
10+
11+
---
12+
13+
This is the full content of Project Two. It details the architecture and challenges faced during development.

src/components/ProjectCard.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { Link } from 'react-router-dom';
33

44
const ProjectCard = ({ project }) => {
55
return (
6-
<Link to={`/projects/${project.slug}`} className="block bg-gray-800/50 p-6 rounded-lg shadow-lg hover:bg-gray-800/80 transition-colors border border-gray-700/50 cursor-pointer">
6+
<Link to={`/projects/${project.slug}`} className="block bg-gray-800/50 p-6 rounded-lg shadow-lg hover:bg-gray-800/80 transition-colors border border-gray-700/50 cursor-pointer flex flex-col">
77
<h3 className="text-xl font-semibold text-white">{project.title}</h3>
8-
<p className="mt-2 text-gray-400">{project.description}</p>
9-
<span className="mt-4 inline-block text-primary-400 hover:text-primary-500 transition-colors">
8+
<p className="mt-2 text-gray-400 flex-grow">{project.description}</p>
9+
<span className="mt-4 inline-block text-primary-400 hover:text-primary-500 transition-colors mt-auto">
1010
View Project &rarr;
1111
</span>
1212
</Link>

src/components/ProjectMetadata.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import React from 'react';
2+
import Label from './Label';
3+
4+
const ProjectMetadata = ({ project }) => {
5+
if (!project) {
6+
return null;
7+
}
8+
9+
return (
10+
<aside className="sticky top-24">
11+
<div className="p-6 bg-gray-800/50 rounded-lg border border-gray-700/50">
12+
<h3 className="text-lg font-semibold text-white mb-4">About Project</h3>
13+
<div className="space-y-4">
14+
<div>
15+
<Label>Title</Label>
16+
<p className="text-gray-300">{project.title}</p>
17+
</div>
18+
{project.link && (
19+
<div>
20+
<Label>Link</Label>
21+
<p className="text-gray-300"><a href={project.link} target="_blank" rel="noopener noreferrer" className="text-indigo-400 hover:text-indigo-300">View Project</a></p>
22+
</div>
23+
)}
24+
{project.pinned && (
25+
<div>
26+
<Label>Status</Label>
27+
<p className="text-gray-300">Pinned</p>
28+
</div>
29+
)}
30+
{project.technologies && project.technologies.length > 0 && (
31+
<div>
32+
<Label>Technologies</Label>
33+
<div className="flex flex-wrap gap-2 mt-2">
34+
{project.technologies.map(tech => (
35+
<span key={tech} className="bg-primary-400/10 text-primary-400 text-xs font-medium px-2.5 py-1 rounded-full">
36+
{tech}
37+
</span>
38+
))}
39+
</div>
40+
</div>
41+
)}
42+
</div>
43+
</div>
44+
</aside>
45+
);
46+
};
47+
48+
export default ProjectMetadata;

src/pages/HomePage.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const HomePage = () => {
4141
</h2>
4242
<div className="mt-8 grid grid-cols-1 md:grid-cols-2 gap-8">
4343
{pinnedProjects.map(project => (
44-
<ProjectCard key={project.slug} project={project} />
44+
<ProjectCard key={project.slug} project={{ ...project, description: project.shortDescription }} />
4545
))}
4646
</div>
4747
</div>

src/pages/ProjectPage.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import React from 'react';
2-
import { useParams } from 'react-router-dom';
2+
import { useParams, Link } from 'react-router-dom';
33
import ReactMarkdown from 'react-markdown';
44
import { useProjects } from '../utils/projectParser';
5+
import ProjectMetadata from '../components/ProjectMetadata';
56

67
const ProjectPage = () => {
78
const { slug } = useParams();
@@ -22,13 +23,22 @@ const ProjectPage = () => {
2223
}
2324

2425
return (
25-
<div className="py-16 sm:py-24">
26-
<div className="mx-auto max-w-3xl px-6 lg:px-8">
27-
<h1 className="text-4xl font-bold tracking-tight text-white sm:text-6xl">{project.title}</h1>
28-
{project.image && <img src={project.image} alt={project.title} className="mt-8 w-full rounded-lg" />}
29-
{project.link && <p className="mt-4 text-lg leading-8 text-gray-300"><a href={project.link} target="_blank" rel="noopener noreferrer" className="text-indigo-400 hover:text-indigo-300">View Project</a></p>}
30-
<div className="mt-6 text-lg leading-8 text-gray-300 prose prose-invert">
31-
<ReactMarkdown>{project.description}</ReactMarkdown>
26+
<div className="bg-gray-900 py-16 sm:py-24">
27+
<div className="mx-auto max-w-7xl px-6 lg:px-8">
28+
<div className="lg:grid lg:grid-cols-4 lg:gap-8">
29+
<div className="lg:col-span-3">
30+
<Link to="/projects" className="text-primary-400 hover:text-primary-500 transition-colors mb-8 block">
31+
&larr; Back to Projects
32+
</Link>
33+
<h1 className="text-4xl font-bold tracking-tight text-white sm:text-6xl">{project.title}</h1>
34+
{project.image && <img src={project.image} alt={project.title} className="mt-8 w-full rounded-lg text-gray-200" />}
35+
<div className="mt-6 text-lg leading-8 text-gray-300 prose prose-invert">
36+
<ReactMarkdown>{project.fullContent}</ReactMarkdown>
37+
</div>
38+
</div>
39+
<div className="hidden lg:block">
40+
<ProjectMetadata project={project} />
41+
</div>
3242
</div>
3343
</div>
3444
</div>

0 commit comments

Comments
 (0)